Add sleep.
diff --git a/toys.h b/toys.h
index 372944e..ce77b74 100644
--- a/toys.h
+++ b/toys.h
@@ -50,7 +50,7 @@
 extern struct toy_context {
 	struct toy_list *which;  // Which entry in toy_list is this one?
 	int exitval;             // Value error_exit feeds to exit()
-	char **argv;             // Command line arguments
+	char **argv;             // Original command line arguments
 	unsigned optflags;       // Command line option flags from get_optflags()
 	char **optargs;          // Arguments left over from get_optflags()
 } toys;
diff --git a/toys/Config.in b/toys/Config.in
index ff4c68a..fcec743 100644
--- a/toys/Config.in
+++ b/toys/Config.in
@@ -217,6 +217,14 @@
 
 	  -f         Show final location, including normal files and multiple symlinks.
 
+config SLEEP
+	bool "sleep"
+	default n
+	help
+	  usage: sleep SECONDS
+
+	  Wait a decimal integer number of seconds.
+
 config SYNC
 	bool "sync"
 	default n
diff --git a/toys/sleep.c b/toys/sleep.c
new file mode 100644
index 0000000..06c4565
--- /dev/null
+++ b/toys/sleep.c
@@ -0,0 +1,11 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * sleep.c - Wait for a number of seconds.
+ */
+
+#include "toys.h"
+
+int sleep_main(void)
+{
+	return sleep(atol(*toys.optargs));
+}
diff --git a/toys/toylist.h b/toys/toylist.h
index 41b7669..0b3845d 100644
--- a/toys/toylist.h
+++ b/toys/toylist.h
@@ -45,6 +45,10 @@
 	struct ext2_superblock sb;
 };
 
+struct sleep_data {
+	long seconds;
+};
+
 struct touch_data {
 	char *ref_file;
 	char *time;
@@ -97,6 +101,7 @@
 USE_PWD(NEWTOY(pwd, NULL, TOYFLAG_BIN))
 USE_READLINK(NEWTOY(readlink, "<1f", TOYFLAG_BIN))
 USE_TOYSH(OLDTOY(sh, toysh, "c:i", TOYFLAG_BIN))
+USE_SLEEP(NEWTOY(sleep, "<1", TOYFLAG_BIN))
 USE_SYNC(NEWTOY(sync, NULL, TOYFLAG_BIN))
 USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN))
 USE_TOYSH(NEWTOY(toysh, "c:i", TOYFLAG_BIN))