diff -d -urpN busybox.6/init/init.c busybox.7/init/init.c
--- busybox.6/init/init.c	2008-03-31 21:26:19.000000000 +0200
+++ busybox.7/init/init.c	2008-04-02 23:39:52.000000000 +0200
@@ -966,7 +966,21 @@ int init_main(int argc ATTRIBUTE_UNUSED,
 		run_actions(ASKFIRST);
 
 		/* Don't consume all CPU time -- sleep a bit */
-		sleep(1);
+		sleep(5);
+{
+	struct sigaction sa;
+	sigset_t sset;
+
+	sigaction(SIGTERM, NULL, &sa);
+	if (sa.sa_handler != halt_reboot_pwoff)
+		bb_error_msg("weird TERM handler: %p", sa.sa_handler);
+	sigprocmask(SIG_BLOCK, NULL, &sset);
+	if (sigismember(&sset, SIGTERM))
+		bb_error_msg("TERM is blocked");
+	sigpending(&sset);
+	if (sigismember(&sset, SIGTERM))
+		bb_error_msg("TERM is pending");
+}
 
 		/* Wait for any child process to exit */
 		wpid = wait(NULL);
