diff -Naur busybox.orig/include/usage.h busybox/include/usage.h
--- busybox.orig/include/usage.h	2008-08-31 20:25:20 +0000
+++ busybox/include/usage.h	2008-09-01 19:32:23 +0000
@@ -1424,7 +1424,7 @@
        "-rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/busybox.tar.gz\n"
 
 #define halt_trivial_usage \
-       "[-d delay] [-n] [-f]"
+       "[-d delay] [-n] [-f]" USE_FEATURE_WTMP(" [-w]")
 #define halt_full_usage "\n\n" \
        "Halt the system\n" \
      "\nOptions:" \
diff -Naur busybox.orig/init/Config.in busybox/init/Config.in
--- busybox.orig/init/Config.in	2008-07-22 23:36:30 +0000
+++ busybox/init/Config.in	2008-09-01 19:35:29 +0000
@@ -83,8 +83,6 @@
 	  core file sizes. If this option is disabled, processes
 	  will not generate any core files.
 
-
-
 config FEATURE_INITRD
 	bool "Support running init from within an initrd (not initramfs)"
 	default y
diff -Naur busybox.orig/init/halt.c busybox/init/halt.c
--- busybox.orig/init/halt.c	2008-08-04 19:03:02 +0000
+++ busybox/init/halt.c	2008-09-01 19:35:55 +0000
@@ -20,16 +20,16 @@
 {
 	static const int magic[] = {
 #ifdef RB_HALT_SYSTEM
-RB_HALT_SYSTEM,
+		RB_HALT_SYSTEM,
 #elif defined RB_HALT
-RB_HALT,
+		RB_HALT,
 #endif
 #ifdef RB_POWER_OFF
-RB_POWER_OFF,
+		RB_POWER_OFF,
 #elif defined RB_POWERDOWN
-RB_POWERDOWN,
+		RB_POWERDOWN,
 #endif
-RB_AUTOBOOT
+		RB_AUTOBOOT
 	};
 	static const smallint signals[] = { SIGUSR1, SIGUSR2, SIGTERM };
 
@@ -46,7 +46,7 @@
 
 	/* Parse and handle arguments */
 	opt_complementary = "d+"; /* -d N */
-	flags = getopt32(argv, "d:nfw", &delay);
+	flags = getopt32(argv, "d:nf" USE_FEATURE_WTMP("w"), &delay);
 
 	sleep(delay);
 
@@ -63,10 +63,11 @@
 	if (uname(&uts) == 0)
 		safe_strncpy(utmp.ut_host, uts.release, sizeof(utmp.ut_host));
 	updwtmp(bb_path_wtmp_file, &utmp);
-#endif /* !ENABLE_FEATURE_WTMP */
 
 	if (flags & 8) /* -w */
 		return EXIT_SUCCESS;
+#endif /* !ENABLE_FEATURE_WTMP */
+
 	if (!(flags & 2)) /* no -n */
 		sync();
 
