diff --git a/package/busybox/busybox-1.18.0/busybox-1.18.0-runsvdir.patch b/package/busybox/busybox-1.18.0/busybox-1.18.0-runsvdir.patch
new file mode 100644
index 0000000000..41ad570a9a
--- /dev/null
+++ b/package/busybox/busybox-1.18.0/busybox-1.18.0-runsvdir.patch
@@ -0,0 +1,17 @@
+diff -urpN busybox-1.18.0/runit/runsvdir.c busybox-1.18.0-runsvdir/runit/runsvdir.c
+--- busybox-1.18.0/runit/runsvdir.c	2010-11-22 21:43:22.000000000 +0100
++++ busybox-1.18.0-runsvdir/runit/runsvdir.c	2010-12-06 01:27:56.926036992 +0100
+@@ -312,8 +312,11 @@ int runsvdir_main(int argc UNUSED_PARAM,
+ 						last_mtime = s.st_mtime;
+ 						last_dev = s.st_dev;
+ 						last_ino = s.st_ino;
+-						//if (now <= mtime)
+-						//	sleep(1);
++						/* if the svdir changed this very second, wait until the
++						 * next second, because we won't be able to detect more
++						 * changes within this second */
++						while (time(NULL) == last_mtime)
++							usleep(100000);
+ 						need_rescan = do_rescan();
+ 						while (fchdir(curdir) == -1) {
+ 							warn2_cannot("change directory, pausing", "");