diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index 6a5d6a74d1d5c10c290f9eda7e8a7bea74bca950..6d2f5b2acf3fe8781e9f68c568dafeb6ac90e8f5 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -4,7 +4,7 @@
 #
 
 
-config BUSYBOX_HAVE_DOT_CONFIG
+config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
 	bool
 	default y
 
@@ -28,6 +28,14 @@ config BUSYBOX_CONFIG_NITPICK
 
 	  You have been warned.
 
+config BUSYBOX_CONFIG_DESKTOP
+	bool "Enable options for full-blown desktop systems"
+	default n
+	help
+	  Enable options and features which are not essential.
+	  Select this only if you plan to use busybox on full-blown
+	  desktop machine with common Linux distro, not on an embedded box.
+
 choice
 	prompt "Buffer allocation policy"
 	default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
@@ -74,8 +82,8 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
 
 config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
 	bool "Store applet usage messages in compressed form"
-	default n
-	depends on BUSYBOX_CONFIG_SHOW_USAGE && BUSYBOX_CONFIG_NITPICK
+	default y
+	depends on BUSYBOX_CONFIG_SHOW_USAGE
 	help
 	  Store usage messages in compressed form, uncompress them on-the-fly
 	  when <applet> --help is called.
@@ -103,13 +111,11 @@ config BUSYBOX_CONFIG_LOCALE_SUPPORT
 	  busybox to support locale settings.
 
 config BUSYBOX_CONFIG_GETOPT_LONG
-	bool
+	bool "Enable support for --long-options"
 	default y
-#	bool "Enable support for --long-options"
-#	default n
-#	help
-#	  Enable this if you want busybox applets to use the gnu --long-option
-#	  style, in addition to single character -a -b -c style options.
+	help
+	  Enable this if you want busybox applets to use the gnu --long-option
+	  style, in addition to single character -a -b -c style options.
 
 config BUSYBOX_CONFIG_FEATURE_DEVPTS
 	bool "Use the devpts filesystem for Unix98 PTYs"
@@ -149,6 +155,13 @@ config BUSYBOX_CONFIG_FEATURE_SUID
 	  are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
 	  and vlock.
 
+config BUSYBOX_CONFIG_FEATURE_SYSLOG
+	bool "Support for syslog"
+	default y
+	help
+	  This option is auto-selected when you select any applet which may
+	  send its output to syslog. You do not need to select it manually.
+
 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
 	bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
 	default n if BUSYBOX_CONFIG_FEATURE_SUID
@@ -189,6 +202,14 @@ config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
 	  /etc/busybox.conf should be readable by the user needing the SUID, check
 	  this option to avoid users to be notified about missing permissions.
 
+config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
+	bool "RPC support"
+	default y
+	help
+	  Select this if you have rpc support.
+	  This automatically turns off all configuration options that rely
+	  on RPC.
+
 config BUSYBOX_CONFIG_SELINUX
 	bool "Support NSA Security Enhanced Linux"
 	default n
@@ -251,7 +272,7 @@ config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
 
 config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX
 	bool "Feature-complete libbusybox"
-	default n if !CONFIG_FEATURE_SHARED_BUSYBOX
+	default n if !BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
 	depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
 	help
 	  Build a libbusybox with the complete feature-set, disregarding
@@ -271,7 +292,7 @@ config BUSYBOX_CONFIG_FEATURE_FULL_LIBBUSYBOX
 config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
 	bool "Use shared libbusybox for busybox"
 	default n if BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
-	depends on !CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
+	depends on !BUSYBOX_CONFIG_STATIC && BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
 	help
 	  Use libbusybox.so also for busybox itself.
 	  You need to have a working dynamic linker to use this variant.
@@ -279,7 +300,7 @@ config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
 config BUSYBOX_CONFIG_LFS
 	bool
 	default y
-	select BUSYBOX_FDISK_SUPPORT_LARGE_DISKS
+	select BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
 	help
 	  If you want to build BusyBox with large file support, then enable
 	  this option.  This will have no effect if your kernel or your C
@@ -288,24 +309,6 @@ config BUSYBOX_CONFIG_LFS
 	  cp, mount, tar, and many others.  If you want to access files larger
 	  than 2 Gigabytes, enable this option.  Otherwise, leave it set to 'N'.
 
-config BUSYBOX_USING_CROSS_COMPILER
-	bool
-	default y
-	help
-	  Do you want to build BusyBox with a Cross Compiler?  If so,
-	  then enable this option.  Otherwise leave it set to 'N'.
-
-config BUSYBOX_CROSS_COMPILER_PREFIX
-	string
-	default "mipsel-uclibc-"
-	depends on BUSYBOX_USING_CROSS_COMPILER
-	help
-	  If you want to build BusyBox with a cross compiler, then you
-	  will need to set this to the cross-compiler prefix.  For example,
-	  if my cross-compiler is /usr/i386-linux-uclibc/bin/i386-uclibc-gcc
-	  then I would enter '/usr/i386-linux-uclibc/bin/i386-uclibc-' here,
-	  which will ensure the correct compiler is used.
-
 config BUSYBOX_CONFIG_BUILD_AT_ONCE
 	bool "Compile all sources at once"
 	default n
@@ -442,8 +445,8 @@ config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
 
 endchoice
 
-config BUSYBOX_PREFIX
-	string
+config BUSYBOX_CONFIG_PREFIX
+	string "BusyBox installation prefix"
 	default "./_install"
 	help
 	  Define your directory to install BusyBox files/subdirs in.
@@ -472,3 +475,4 @@ source package/busybox/config/networking/Config.in
 source package/busybox/config/procps/Config.in
 source package/busybox/config/shell/Config.in
 source package/busybox/config/sysklogd/Config.in
+source package/busybox/config/runit/Config.in
diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in
index ac71d753a222e4d4bcba7eea7a89feeccc243ac5..d92d66085a71fbab3a0275bf32ab5f6a9466c61b 100644
--- a/package/busybox/config/archival/Config.in
+++ b/package/busybox/config/archival/Config.in
@@ -128,7 +128,7 @@ config BUSYBOX_CONFIG_IPKG
 	select BUSYBOX_CONFIG_WGET
 	help
 	  ipkg is the itsy package management system.
-	
+
 config BUSYBOX_CONFIG_RPM2CPIO
 	bool "rpm2cpio"
 	default n
@@ -300,9 +300,9 @@ config BUSYBOX_CONFIG_FEATURE_DEB_TAR_LZMA
 	depends on BUSYBOX_CONFIG_DPKG || BUSYBOX_CONFIG_DPKG_DEB
 	help
 	  This allows dpkg and dpkg-deb to extract deb's that are compressed
-          internally with lzma instead of gzip.
+	  internally with lzma instead of gzip.
 
 	  You only want this if you are creating your own custom debian
-          packages that use an internal control.tar.lzma or data.tar.lzma.
+	  packages that use an internal control.tar.lzma or data.tar.lzma.
 
 endmenu
diff --git a/package/busybox/config/console-tools/Config.in b/package/busybox/config/console-tools/Config.in
index 1efe300982e4a46b43d12043ee9fab830e4f330b..661e8947c604250ab63f4e816d0ed2c65cde5372 100644
--- a/package/busybox/config/console-tools/Config.in
+++ b/package/busybox/config/console-tools/Config.in
@@ -58,6 +58,23 @@ config BUSYBOX_CONFIG_RESET
 	  This program is used to reset the terminal screen, if it
 	  gets messed up.
 
+config BUSYBOX_CONFIG_RESIZE
+	bool "resize"
+	default n
+	help
+	  This program is used to (re)set the width and height of your current
+	  terminal.
+
+config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT
+	bool "print environment variables"
+	default n
+	depends on BUSYBOX_CONFIG_RESIZE
+	help
+	  Prints the newly set size (number of columns and rows) of
+	  the terminal.
+	  E.g.:
+	  COLUMNS=80;LINES=44;export COLUMNS LINES;
+
 config BUSYBOX_CONFIG_SETCONSOLE
 	bool "setconsole"
 	default n
diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in
index 3487fc742ce69144b3bf73ac06c1d9759113ae09..91f93e19bd72f0d8af20f57a29a0141c252f69ad 100644
--- a/package/busybox/config/coreutils/Config.in
+++ b/package/busybox/config/coreutils/Config.in
@@ -120,11 +120,11 @@ config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
 	default y
 	depends on BUSYBOX_CONFIG_DD
 	help
-	  sending a SIGUSR1 signal to a running `dd' process makes it 
-	  print to standard error the number of records read and written 
+	  sending a SIGUSR1 signal to a running `dd' process makes it
+	  print to standard error the number of records read and written
 	  so far, then to resume copying.
 
-	  $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 
+	  $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid
 	  10899206+0 records in 10899206+0 records out
 
 config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
@@ -704,6 +704,13 @@ config BUSYBOX_CONFIG_WC
 	  wc is used to print the number of bytes, words, and lines,
 	  in specified files.
 
+config BUSYBOX_CONFIG_FEATURE_WC_LARGE
+	bool "Support very large files in wc"
+	default n
+	depends on BUSYBOX_CONFIG_WC
+	help
+	  Use "unsigned long long" in wc for count variables
+
 config BUSYBOX_CONFIG_WHO
 	bool "who"
 	default n
@@ -744,9 +751,9 @@ config BUSYBOX_CONFIG_FEATURE_AUTOWIDTH
 	depends on BUSYBOX_CONFIG_LS || BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TELNET
 	help
 	  This option allows utilities such as 'ls', 'more' and 'telnet'
-	  to determine the width of the screen, which can allow them to 
+	  to determine the width of the screen, which can allow them to
 	  display additional text or avoid wrapping text onto the next line.
-	  If you leave this disabled, your utilities will be especially 
+	  If you leave this disabled, your utilities will be especially
 	  primitive and will be unable to determine the current screen width.
 
 comment "Common options for df, du, ls"
diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in
index e708259888d009357603e337c976da53512ed1f6..dc0bbcec3fdcaeed90da3efb9299c516e56d0060 100644
--- a/package/busybox/config/findutils/Config.in
+++ b/package/busybox/config/findutils/Config.in
@@ -148,7 +148,7 @@ config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
 	  is exceeded.
 
 config BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
-	bool "Enable options -0"
+	bool "Enable null terminated option -0"
 	default y
 	depends on BUSYBOX_CONFIG_XARGS
 	help
diff --git a/package/busybox/config/init/Config.in b/package/busybox/config/init/Config.in
index 3696f7017ff9b5cdd952f50dd8dc2930d27358d5..b8ad0d664ecbbafd02017f84339f21e9ca331e9d 100644
--- a/package/busybox/config/init/Config.in
+++ b/package/busybox/config/init/Config.in
@@ -8,6 +8,7 @@ menu "Init Utilities"
 config BUSYBOX_CONFIG_INIT
 	bool "init"
 	default y
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  init is the first program run when the system boots.
 
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 7d84a7596221d85178d9c0d59d78186efda15fb5..4919f9b0b5a02fdc069ed2fe86b2ea8c644a814b 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/package/busybox/config/libbb/Config.in
@@ -5,6 +5,13 @@
 
 menu "Busybox Library Tuning"
 
+config BUSYBOX_CONFIG_PASSWORD_MINLEN
+	int "Minimum password length"
+	default 6
+	range 5 32
+	help
+	  Minimum allowable password length.
+
 config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED
 	int " MD5: Trade Bytes for Speed"
 	default 2
diff --git a/package/busybox/config/loginutils/Config.in b/package/busybox/config/loginutils/Config.in
index 33a764e35ce083485b0a20b9ebc69150ebc61bcf..268c8b6e7afd33bb49b7084241f925ae49f6fe68 100644
--- a/package/busybox/config/loginutils/Config.in
+++ b/package/busybox/config/loginutils/Config.in
@@ -14,7 +14,7 @@ config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
 	  publicly readable.
 
 config BUSYBOX_CONFIG_USE_BB_SHADOW
-	bool #"  Use busybox shadow password functions"
+	bool "  Use busybox shadow password functions"
 	default n
 	depends on BUSYBOX_CONFIG_USE_BB_PWD_GRP && BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
 	help
@@ -80,6 +80,7 @@ config BUSYBOX_CONFIG_DELUSER
 config BUSYBOX_CONFIG_GETTY
 	bool "getty"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  getty lets you log in on a tty, it is normally invoked by init.
 
@@ -103,12 +104,21 @@ config BUSYBOX_CONFIG_LOGIN
 	bool "login"
 	default n
 	select BUSYBOX_CONFIG_FEATURE_SUID
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  login is used when signing onto a system.
 
 	  Note that Busybox binary must be setuid root for this applet to
 	  work properly.
 
+config BUSYBOX_CONFIG_LOGIN_SCRIPTS
+	bool "Support for login scripts"
+	depends on BUSYBOX_CONFIG_LOGIN
+	default n
+	help
+	  Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
+	  just prior to switching from root to logged-in user.
+
 config BUSYBOX_CONFIG_FEATURE_SECURETTY
 	bool "Support for /etc/securetty"
 	default n
@@ -122,6 +132,7 @@ config BUSYBOX_CONFIG_PASSWD
 	bool "passwd"
 	default y
 	select BUSYBOX_CONFIG_FEATURE_SUID
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  passwd changes passwords for user and group accounts.  A normal user
 	  may only change the password for his/her own account, the super user
@@ -135,6 +146,7 @@ config BUSYBOX_CONFIG_SU
 	bool "su"
 	default n
 	select BUSYBOX_CONFIG_FEATURE_SUID
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  su is used to become another user during a login session.
 	  Invoked without a username, su defaults to becoming the super user.
@@ -142,9 +154,17 @@ config BUSYBOX_CONFIG_SU
 	  Note that Busybox binary must be setuid root for this applet to
 	  work properly.
 
+config BUSYBOX_CONFIG_SU_SYSLOG
+	bool "Support for syslog in su"
+	default n
+	depends on BUSYBOX_CONFIG_SU
+	help
+	  Enables support for syslog in su.
+
 config BUSYBOX_CONFIG_SULOGIN
 	bool "sulogin"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  sulogin is invoked when the system goes into single user
 	  mode (this is done through an entry in inittab).
diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in
index 407503dc405462f473041584fe4826314de2d2b7..4d5a9a1d34609506ac39253b47f76481ee52bbf1 100644
--- a/package/busybox/config/miscutils/Config.in
+++ b/package/busybox/config/miscutils/Config.in
@@ -23,6 +23,7 @@ config BUSYBOX_CONFIG_CROND
 	bool "crond"
 	default y
 	select BUSYBOX_CONFIG_FEATURE_SUID
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  Crond is a background daemon that parses individual crontab
 	  files and executes commands on behalf of the users in question.
@@ -66,8 +67,9 @@ config BUSYBOX_CONFIG_DC
 config BUSYBOX_CONFIG_DEVFSD
 	bool "devfsd (obsolete)"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
-	  This is deprecated, and will be going away in a future release.
+	  This is deprecated, and will be removed at the end of 2008.
 
 	  Provides compatibility with old device names on a devfs systems.
 	  You should set it to true if you have devfs enabled.
@@ -105,13 +107,12 @@ config BUSYBOX_CONFIG_FEATURE_DEVFS
 	bool "  Use devfs names for all devices (obsolete)"
 	default y
 	help
+	  This is obsolete and will be going away at the end of 2008..
+
 	  This tells busybox to look for names like /dev/loop/0 instead of
 	  /dev/loop0.  If your /dev directory has normal names instead of
 	  devfs names, you don't want this.
 
-	  This is obsolete and will be going away someday.  Consider it
-	  deprecated.
-
 config BUSYBOX_CONFIG_EJECT
 	bool "eject"
 	default n
@@ -178,7 +179,7 @@ config BUSYBOX_CONFIG_HDPARM
 	help
 	  Get/Set hard drive parameters.  Primarily intended for ATA
 	  drives.  Adds about 13k (or around 30k if you enable the
-	  BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY option)....
+	  FEATURE_HDPARM_GET_IDENTITY option)....
 
 config BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY
 	bool "Support obtaining detailed information directly from drives"
@@ -283,6 +284,35 @@ config BUSYBOX_CONFIG_MT
 	  to advance or rewind a tape past a specified number of archive
 	  files on the tape.
 
+config BUSYBOX_CONFIG_NMETER
+	bool "nmeter"
+	default n
+	help
+	  nmeter prints various system parameters continuously.
+
+config BUSYBOX_CONFIG_RAIDAUTORUN
+	bool "raidautorun"
+	default n
+	help
+	  raidautorun tells the kernel md driver to
+	  search and start RAID arrays.
+
+config BUSYBOX_CONFIG_READAHEAD
+        bool "readahead"
+	default n
+	help
+ 	  Preload the files listed on the command line into RAM cache so that
+	  subsequent reads on these files will not block on disk I/O.
+
+	  This applet just calls the readahead(2) system call on each file.
+	  It is mainly useful in system startup scripts to preload files
+	  or executables before they are used.  When used at the right time
+	  (in particular when a CPU boundprocess is running) it can
+	  significantly speed up system startup.
+
+	  As readahead(2) blocks until each file has been read, it is best to
+	  run this applet as a background job.
+
 config BUSYBOX_CONFIG_RUNLEVEL
         bool "runlevel"
 	default n
@@ -315,13 +345,17 @@ config BUSYBOX_CONFIG_TASKSET
 	bool "taskset"
 	default n
 	help
-	  Retrieve or set a processes's CPU affinity
+	  Retrieve or set a processes's CPU affinity.
+	  This requires sched_{g,s}etaffinity support in your libc.
 
-config BUSYBOX_CONFIG_TASKSET
-	bool "taskset"
+config BUSYBOX_CONFIG_FEATURE_TASKSET_FANCY
+	bool "fancy output"
 	default n
+	depends on BUSYBOX_CONFIG_TASKSET
 	help
-	  Retrieve or set a processes's CPU affinity (on linux)
+	  Add code for fancy output. This merely silences a compiler-warning
+	  and adds about 135 Bytes. May be needed for machines with alot
+	  of CPUs.
 
 config BUSYBOX_CONFIG_TIME
 	bool "time"
diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in
index 4441632e85eb8946d8cb3d43b249c11cc93140c2..d1e5c3a9e36737151978ba1ec3db54dc98ccecd4 100644
--- a/package/busybox/config/modutils/Config.in
+++ b/package/busybox/config/modutils/Config.in
@@ -43,7 +43,7 @@ config BUSYBOX_CONFIG_FEATURE_INSMOD_LOADINKMEM
 config BUSYBOX_CONFIG_FEATURE_INSMOD_LOAD_MAP
 	bool "Enable load map (-m) option"
 	default n
-	depends on BUSYBOX_CONFIG_INSMOD && BUSYBOX_CONFIG_FEATURE_2_4_MODULES
+	depends on BUSYBOX_CONFIG_INSMOD && ( BUSYBOX_CONFIG_FEATURE_2_4_MODULES || BUSYBOX_CONFIG_FEATURE_2_6_MODULES )
 	help
 	  Enabling this, one would be able to get a load map
 	  output on stdout. This makes kernel module debugging
@@ -91,7 +91,8 @@ config BUSYBOX_CONFIG_MODPROBE
 	  module options from the configuration file. See option below.
 
 config BUSYBOX_CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS
-	bool "Multiple options parsing"
+	bool
+	prompt "Multiple options parsing" if BUSYBOX_CONFIG_NITPICK
 	default n
 	depends on BUSYBOX_CONFIG_MODPROBE
 	help
@@ -106,6 +107,16 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS
 	  Saying Y here is not a bad idea if you're not that short
 	  on storage capacity.
 
+config BUSYBOX_CONFIG_FEATURE_MODPROBE_FANCY_ALIAS
+	bool
+	prompt "Fancy alias parsing" if BUSYBOX_CONFIG_NITPICK
+	default n
+	depends on BUSYBOX_CONFIG_MODPROBE && BUSYBOX_CONFIG_FEATURE_2_6_MODULES
+	help
+	  Say 'y' here to enable parsing of aliases with underscore/dash
+	  mismatch between module name and file name, along with bus-specific
+	  aliases (such as pci:... or usb:... aliases).
+
 comment "Options common to multiple modutils"
 	depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE || BUSYBOX_CONFIG_LSMOD
 
@@ -124,7 +135,7 @@ config BUSYBOX_CONFIG_FEATURE_2_4_MODULES
 	# Simulate indentation
 	bool "Support version 2.2.x to 2.4.x Linux kernels"
 	default y
-	depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD
+	depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_RMMOD || BUSYBOX_CONFIG_MODPROBE
 	help
 	  Support module loading for 2.2.x and 2.4.x Linux kernels.
 
@@ -140,7 +151,7 @@ config BUSYBOX_CONFIG_FEATURE_2_6_MODULES
 config BUSYBOX_CONFIG_FEATURE_QUERY_MODULE_INTERFACE
 	bool
 	default n
-	depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && !CONFIG_FEATURE_2_6_MODULES
+	depends on BUSYBOX_CONFIG_FEATURE_2_4_MODULES && !BUSYBOX_CONFIG_FEATURE_2_6_MODULES
 
 
 endmenu
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 3e0cbc95d42177aecd890ec8669d4afb292a652f..bd1c64b5e382b55379325a5947fa381f2993ce00 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -22,7 +22,7 @@ config BUSYBOX_CONFIG_DNSD
 	bool "dnsd"
 	default n
 	help
-	  Small and static DNS server daemon. 
+	  Small and static DNS server daemon.
 
 config BUSYBOX_CONFIG_ETHER_WAKE
 	bool "ether-wake"
@@ -33,6 +33,7 @@ config BUSYBOX_CONFIG_ETHER_WAKE
 config BUSYBOX_CONFIG_FAKEIDENTD
 	bool "fakeidentd"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  fakeidentd listens on the ident port and returns a predefined
 	  fake value on any query.
@@ -52,7 +53,7 @@ config BUSYBOX_CONFIG_FTPPUT
 config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS
 	bool "Enable long options in ftpget/ftpput"
 	default n
-	depends on BUSYBOX_CONFIG_GETOPT_LONG && (CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
+	depends on BUSYBOX_CONFIG_GETOPT_LONG && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT)
 	help
 	  Support long options for the ftpget/ftpput applet.
 
@@ -68,14 +69,6 @@ config BUSYBOX_CONFIG_HTTPD
 	help
 	  Serve web pages via an HTTP server.
 
-config BUSYBOX_CONFIG_FEATURE_HTTPD_WITHOUT_INETD
-	bool "Support using httpd as a daemon (not from inetd)"
-	default y
-	depends on BUSYBOX_CONFIG_HTTPD
-	help
-	  This option enables uid and port options for the httpd applet,
-	  and eliminates the need to be called from the inetd server daemon.
-
 config BUSYBOX_CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
 	bool "Support reloading the global config file using hup signal"
 	default n
@@ -131,9 +124,9 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
 	default n
 	depends on BUSYBOX_CONFIG_FEATURE_HTTPD_CGI
 	help
-	  This option enables support for running scripts through an 
-	  interpreter. Turn this on if you want PHP scripts to work 
-	  properly. You need to supply an addition line in your httpd 
+	  This option enables support for running scripts through an
+	  interpreter. Turn this on if you want PHP scripts to work
+	  properly. You need to supply an addition line in your httpd
 	  config file:
 	  *.php:/path/to/your/php
 
@@ -210,8 +203,8 @@ config BUSYBOX_CONFIG_IFUPDOWN
 	  Activate or deactivate the specified interfaces.  This applet makes
 	  use of either "ifconfig" and "route" or the "ip" command to actually
 	  configure network interfaces.  Therefore, you will probably also want
-	  to enable either BUSYBOX_CONFIG_IFCONFIG and BUSYBOX_CONFIG_ROUTE, or enable
-	  BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP and the various BUSYBOX_CONFIG_IP options.  Of
+	  to enable either IFCONFIG and ROUTE, or enable
+	  FEATURE_IFUPDOWN_IP and the various IP options.  Of
 	  course you could use non-busybox versions of these programs, so
 	  against my better judgement (since this will surely result in plenty
 	  of support questions on the mailing list), I do not force you to
@@ -238,20 +231,20 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
 	help
 	  Use the busybox iproute "ip" applet to implement "ifupdown".
 
-	  If leave this disabled, you must install the full-blown iproute2
+	  If left disabled, you must install the full-blown iproute2
 	  utility or the  "ifup" and "ifdown" applets will not work.
 
-config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
+config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
 	bool "Use busybox ifconfig and route applets"
 	default n
-	depends on BUSYBOX_CONFIG_IFUPDOWN && !CONFIG_FEATURE_IFUPDOWN_IP
+	depends on BUSYBOX_CONFIG_IFUPDOWN && !BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
 	select BUSYBOX_CONFIG_IFCONFIG
 	select BUSYBOX_CONFIG_ROUTE
 	help
 	  Use the busybox iproute "ifconfig" and "route" applets to
 	  implement the "ifup" and "ifdown" utilities.
 
-	  If leave this disabled, you must install the full-blown ifconfig
+	  If left disabled, you must install the full-blown ifconfig
 	  and route utilities, or the  "ifup" and "ifdown" applets will not
 	  work.
 
@@ -288,6 +281,7 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING
 config BUSYBOX_CONFIG_INETD
 	bool "inetd"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  Internet superserver daemon
 
@@ -330,9 +324,9 @@ config BUSYBOX_CONFIG_FEATURE_INETD_RPC
 	bool "Support RPC services"
 	default n
 	depends on BUSYBOX_CONFIG_INETD
+	depends on BUSYBOX_CONFIG_FEATURE_HAVE_RPC
 	help
-	  Suuport Sun-RPC based services
-
+	  Support Sun-RPC based services
 
 config BUSYBOX_CONFIG_IP
 	bool "ip"
@@ -370,6 +364,13 @@ config BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
 	help
 	  Add support for tunneling commands to "ip".
 
+config BUSYBOX_CONFIG_FEATURE_IP_RULE
+	bool "ip rule"
+	default n
+	depends on BUSYBOX_CONFIG_IP
+	help
+	  Add support for rule commands to "ip".
+
 config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS
 	bool "Support short forms of ip commands."
 	default n
@@ -404,6 +405,11 @@ config BUSYBOX_CONFIG_IPTUNNEL
 	default n
 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_TUNNEL
 
+config BUSYBOX_CONFIG_IPRULE
+	bool
+	default n
+	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_RULE
+
 config BUSYBOX_CONFIG_IPCALC
 	bool "ipcalc"
 	default n
@@ -428,6 +434,7 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS
 config BUSYBOX_CONFIG_NAMEIF
 	bool "nameif"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  nameif is used to rename network interface by its MAC address.
 	  Renamed interfaces MUST be in the down state.
@@ -452,13 +459,21 @@ config BUSYBOX_CONFIG_NETMSG
 	help
 	  simple program for sending udp broadcast messages
 
-config BUSYBOX_CONFIG_NC_GAPING_SECURITY_HOLE
-	bool "gaping security hole"
+config BUSYBOX_CONFIG_NC_SERVER
+	bool "Netcat server options (-lp)"
+	default n
+	depends on BUSYBOX_CONFIG_NC
+	help
+	  Allow netcat to act as a server.
+
+config BUSYBOX_CONFIG_NC_EXTRA
+	bool "Netcat extensions (-eiw and filename)"
 	default n
 	depends on BUSYBOX_CONFIG_NC
 	help
-	  Add support for executing a program after making or receiving a
-	  successful connection (-e option).
+	  Add -e (support for executing the rest of the command line after
+	  making or receiving a successful connection), -i (delay interval for
+	  lines sent), -w (timeout for initial connection).
 
 config BUSYBOX_CONFIG_NETSTAT
 	bool "netstat"
@@ -537,6 +552,7 @@ config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN
 config BUSYBOX_CONFIG_TELNETD
 	bool "telnetd"
 	default y
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  A daemon for the TELNET protocol, allowing you to log onto the host
 	  running the daemon.  Please keep in mind that the TELNET protocol
@@ -548,8 +564,8 @@ config BUSYBOX_CONFIG_TELNETD
 
 	  Note that for busybox telnetd to work you need several things:
 	  First of all, your kernel needs:
-		  BUSYBOX_CONFIG_UNIX98_PTYS=y
-		  BUSYBOX_CONFIG_DEVPTS_FS=y
+		  UNIX98_PTYS=y
+		  DEVPTS_FS=y
 
 	  Next, you need a /dev/pts directory on your root filesystem:
 
@@ -566,8 +582,8 @@ config BUSYBOX_CONFIG_TELNETD
 
 		  mount -t devpts devpts /dev/pts
 
-	  You need to be sure that Busybox has BUSYBOX_CONFIG_LOGIN and
-	  BUSYBOX_CONFIG_FEATURE_SUID enabled.  And finally, you should make
+	  You need to be sure that Busybox has LOGIN and
+	  FEATURE_SUID enabled.  And finally, you should make
 	  certain that Busybox has been installed setuid root:
 
 		chown root.root /bin/busybox
@@ -576,13 +592,12 @@ config BUSYBOX_CONFIG_TELNETD
 	  with all that done, telnetd _should_ work....
 
 
-config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD
-	bool "Support call from inetd only"
+config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
+	bool "Support standalone telnetd (not inetd only)"
 	default n
 	depends on BUSYBOX_CONFIG_TELNETD
 	help
-	  Selecting this will make telnetd only callable from inetd,
-	  removing the standalone support.
+	  Selecting this will make telnetd able to run standalone.
 
 config BUSYBOX_CONFIG_TFTP
 	bool "tftp"
@@ -699,6 +714,7 @@ config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS
 config BUSYBOX_CONFIG_ZCIP
 	bool "zcip"
 	default n
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
 	  It's a daemon that allocates and defends a dynamically assigned
diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in
index 741afa327934b181b1d1eb4f5cecdc01c68c09d7..04a2ada1707164f1329e929aaac09afe9796cfdd 100644
--- a/package/busybox/config/networking/udhcp/Config.in
+++ b/package/busybox/config/networking/udhcp/Config.in
@@ -3,8 +3,6 @@
 # see scripts/kbuild/config-language.txt.
 #
 
-menu "udhcp Server/Client"
-
 config BUSYBOX_CONFIG_APP_UDHCPD
 	bool "udhcp Server (udhcpd)"
 	default n
@@ -14,17 +12,14 @@ config BUSYBOX_CONFIG_APP_UDHCPD
 
 	  See http://udhcp.busybox.net for further details.
 
-config BUSYBOX_CONFIG_APP_UDHCPC
-	bool "udhcp Client (udhcpc)"
-	default y
+config BUSYBOX_CONFIG_APP_DHCPRELAY
+	bool "dhcprelay"
+	default n
+	depends on BUSYBOX_CONFIG_APP_UDHCPD
 	help
-	  uDHCPc is a DHCP client geared primarily toward embedded systems,
-	  while striving to be fully functional and RFC compliant.
-
-	  The udhcp client negotiates a lease with the DHCP server and
-	  notifies a set of scripts when a lease is obtained or lost.
-
-	  See http://udhcp.busybox.net for further details.
+	  dhcprelay listens for dhcp requests on one or more interfaces
+	  and forwards these requests to a different interface or dhcp
+	  server.
 
 config BUSYBOX_CONFIG_APP_DUMPLEASES
 	bool "Lease display utility (dumpleases)"
@@ -37,18 +32,31 @@ config BUSYBOX_CONFIG_APP_DUMPLEASES
 
 	  See http://udhcp.busybox.net for further details.
 
+config BUSYBOX_CONFIG_APP_UDHCPC
+	bool "udhcp Client (udhcpc)"
+	default y
+	help
+	  uDHCPc is a DHCP client geared primarily toward embedded systems,
+	  while striving to be fully functional and RFC compliant.
+
+	  The udhcp client negotiates a lease with the DHCP server and
+	  notifies a set of scripts when a lease is obtained or lost.
+
+	  See http://udhcp.busybox.net for further details.
+
 config BUSYBOX_CONFIG_FEATURE_UDHCP_SYSLOG
-	bool "  Log udhcp messages to syslog (instead of stdout)"
+	bool "Log udhcp messages to syslog"
 	default n
 	depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
-	  If selected, udhcpd will log all its messages to syslog, otherwise,
-	  it will attempt to log them to stdout.
+	  If not daemonized, udhcpd prints its messages to stdout/stderr.
+	  If this option is selected, it will also log them to syslog.
 
 	  See http://udhcp.busybox.net for further details.
 
 config BUSYBOX_CONFIG_FEATURE_UDHCP_DEBUG
-	bool "  Compile udhcp with noisy debugging messages"
+	bool "Compile udhcp with noisy debugging messages"
 	default n
 	depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
 	help
@@ -57,6 +65,3 @@ config BUSYBOX_CONFIG_FEATURE_UDHCP_DEBUG
 	  the background.
 
 	  See http://udhcp.busybox.net for further details.
-
-endmenu
-
diff --git a/package/busybox/config/runit/Config.in b/package/busybox/config/runit/Config.in
new file mode 100644
index 0000000000000000000000000000000000000000..3938f9cc2f0f30afb8c0751b7816e0401ad47786
--- /dev/null
+++ b/package/busybox/config/runit/Config.in
@@ -0,0 +1,66 @@
+#
+# For a description of the syntax of this configuration file,
+# see scripts/kbuild/config-language.txt.
+#
+
+menu "Runit Utilities"
+
+config BUSYBOX_CONFIG_RUNSV
+	bool "runsv"
+	default n
+	help
+	  runsv starts and monitors a service and optionally an appendant log
+	  service.
+
+config BUSYBOX_CONFIG_RUNSVDIR
+	bool "runsvdir"
+	default n
+	help
+	  runsvdir starts a runsv process for each subdirectory, or symlink to
+	  a directory, in the services directory dir, up to a limit of 1000
+	  subdirectories, and restarts a runsv process if it terminates.
+
+config BUSYBOX_CONFIG_SV
+	bool "sv"
+	default n
+	help
+	  sv reports the current status and controls the state of services
+	  monitored by the runsv supervisor.
+
+config BUSYBOX_CONFIG_SVLOGD
+	bool "svlogd"
+	default n
+	help
+	  svlogd continuously reads log data from its standard input, optionally
+	  filters log messages, and writes the data to one or more automatically
+	  rotated logs.
+
+config BUSYBOX_CONFIG_CHPST
+	bool "chpst"
+	default n
+	help
+	  chpst changes the process state according to the given options, and
+	  execs specified program.
+
+config BUSYBOX_CONFIG_SETUIDGID
+	bool "setuidgid"
+	help
+	  Sets soft resource limits as specified by options
+
+config BUSYBOX_CONFIG_ENVUIDGID
+	bool "envuidgid"
+	help
+	  Sets $UID to account's uid and $GID to account's gid
+
+config BUSYBOX_CONFIG_ENVDIR
+	bool "envdir"
+	help
+	  Sets various environment variables as specified by files
+	  in the given directory
+
+config BUSYBOX_CONFIG_SOFTLIMIT
+	bool "softlimit"
+	help
+	  Sets soft resource limits as specified by options
+
+endmenu
diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in
index 373c7461a41c004f1beea3c49fff72326929e2b3..d4cd52dade3bfde6d855b9563c2b2fcb604c7e5b 100644
--- a/package/busybox/config/shell/Config.in
+++ b/package/busybox/config/shell/Config.in
@@ -257,6 +257,7 @@ config BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING_VI
 
 config BUSYBOX_CONFIG_FEATURE_COMMAND_HISTORY
 	int "History size"
+	range 0 99999
 	default 15
 	depends on BUSYBOX_CONFIG_FEATURE_COMMAND_EDITING
 	help
diff --git a/package/busybox/config/sysklogd/Config.in b/package/busybox/config/sysklogd/Config.in
index f12069566480b0c67647e18abb9e989598e939a7..12e08d3a93da37c9f3ebd975c359d3b977e8232b 100644
--- a/package/busybox/config/sysklogd/Config.in
+++ b/package/busybox/config/sysklogd/Config.in
@@ -89,6 +89,7 @@ config BUSYBOX_CONFIG_KLOGD
 	bool "klogd"
 	default y
 	depends on BUSYBOX_CONFIG_SYSLOGD
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	  klogd is a utility which intercepts and logs all
 	  messages from the Linux kernel and sends the messages
@@ -99,6 +100,7 @@ config BUSYBOX_CONFIG_KLOGD
 config BUSYBOX_CONFIG_LOGGER
 	bool "logger"
 	default y
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
 	help
 	    The logger utility allows you to send arbitrary text
 	    messages to the system log (i.e. the 'syslogd' utility) so
diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in
index b7a8ae91f54833114314080535bf4a1d221ea59d..ab3dc3731dd45f99eee50aadd95093d259988756 100644
--- a/package/busybox/config/util-linux/Config.in
+++ b/package/busybox/config/util-linux/Config.in
@@ -17,6 +17,26 @@ config BUSYBOX_CONFIG_DMESG
 	  are also logged to the system console.  Enable this option if you
 	  wish to enable the 'dmesg' utility.
 
+config BUSYBOX_CONFIG_FEATURE_DMESG_PRETTY
+	bool "pretty dmesg output"
+	default y
+	depends on BUSYBOX_CONFIG_DMESG
+	help
+	  If you wish to scrub the syslog level from the output, say 'Y' here.
+	  The syslog level is a string prefixed to every line with the form "<#>".
+
+	  With this option you will see:
+	    # dmesg
+	    Linux version 2.6.17.4 .....
+	    BIOS-provided physical RAM map:
+	     BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
+
+	  Without this option you will see:
+	    # dmesg
+	    <5>Linux version 2.6.17.4 .....
+	    <6>BIOS-provided physical RAM map:
+	    <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
+
 config BUSYBOX_CONFIG_FBSET
 	bool "fbset"
 	default n
@@ -72,8 +92,8 @@ config BUSYBOX_CONFIG_FDISK
 	  can be used to list and edit the set of partitions or BSD style
 	  'disk slices' that are defined on a hard drive.
 
-config BUSYBOX_FDISK_SUPPORT_LARGE_DISKS
-	bool
+config BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
+	bool "support over 4GB disks"
 	default y
 	depends on BUSYBOX_CONFIG_FDISK
 	help
@@ -307,7 +327,7 @@ config BUSYBOX_CONFIG_FEATURE_MKSWAP_V0
 	bool "version 0 support"
 	default n
 	depends on BUSYBOX_CONFIG_MKSWAP
-#	depends on BUSYBOX_CONFIG_MKSWAP && BUSYBOX_CONFIG_DEPRECATED
+#	depends on MKSWAP && BUSYBOX_CONFIG_DEPRECATED
 	help
 	  Enable support for the old v0 style.
 	  If your kernel is older than 2.1.117, then v0 support is the
@@ -325,7 +345,7 @@ config BUSYBOX_CONFIG_MORE
 
 config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
 	bool "Use termios to manipulate the screen"
-	default y
+	default n
 	depends on BUSYBOX_CONFIG_MORE
 	help
 	  This option allows utilities such as 'more' and 'top' to determine
@@ -349,8 +369,34 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
 	bool "Support mounting NFS file systems"
 	default y
 	depends on BUSYBOX_CONFIG_MOUNT
+	depends on BUSYBOX_CONFIG_FEATURE_HAVE_RPC
+	select BUSYBOX_CONFIG_FEATURE_SYSLOG
+	help
+	  Enable mounting of NFS file systems.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_CIFS
+	bool "Support mounting CIFS/SMB file systems"
+	default y
+	depends on BUSYBOX_CONFIG_MOUNT
+	help
+	  Enable support for samba mounts.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_FLAGS
+	depends on BUSYBOX_CONFIG_MOUNT
+	bool "Support lots of -o flags in mount"
+	default y
+	help
+	  Without this, mount only supports ro/rw/remount.  With this, it
+	  supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
+	  noatime, diratime, nodiratime, loud, bind, move, shared, slave,
+	  private, unbindable, rshared, rslave, rprivate, and runbindable.
+
+config BUSYBOX_CONFIG_FEATURE_MOUNT_FSTAB
+	depends on BUSYBOX_CONFIG_MOUNT
+	bool "Support /etc/fstab and -a"
+	default y
 	help
-	 Enable mounting of NFS file systems.
+	  Support mount all and looking for files in /etc/fstab.
 
 config BUSYBOX_CONFIG_PIVOT_ROOT
 	bool "pivot_root"
diff --git a/scripts/gen_busybox_menuconfig.pl b/scripts/gen_busybox_menuconfig.pl
index 5fe64783eb3d22383cdf9cf8c7a4394d3fe61363..0128bf78d7d85ab7f6f4bd62d5c0479894929af0 100755
--- a/scripts/gen_busybox_menuconfig.pl
+++ b/scripts/gen_busybox_menuconfig.pl
@@ -16,9 +16,9 @@ my %config;
 
 open CONFIG, $DEFCONFIG or die 'cannot open config file';
 while (<CONFIG>) {
-	/^([\w_]+)=([ym])/ and $config{$1} = $2;
-	/^([\w_]+)=(\d+)/ and $config{$1} = $2;
-	/^([\w_]+)=(".+")/ and $config{$1} = $2;
+	/^CONFIG_([\w_]+)=([ym])/ and $config{$1} = $2;
+	/^CONFIG_([\w_]+)=(\d+)/ and $config{$1} = $2;
+	/^CONFIG_([\w_]+)=(".+")/ and $config{$1} = $2;
 }
 close CONFIG;
 
@@ -39,8 +39,8 @@ while (<FIND>) {
 		next if $line =~ /^\s*mainmenu/;
 
 		# FIXME: make this dynamic
-		$line =~ s/default CONFIG_FEATURE_BUFFERS_USE_MALLOC/default CONFIG_FEATURE_BUFFERS_GO_ON_STACK/;
-		$line =~ s/default BUSYBOX_CONFIG_FEATURE_SH_IS_NONE/default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH/;
+		$line =~ s/default FEATURE_BUFFERS_USE_MALLOC/default FEATURE_BUFFERS_GO_ON_STACK/;
+		$line =~ s/default FEATURE_SH_IS_NONE/default FEATURE_SH_IS_ASH/;
 
 		if ($line =~ /^\s*config\s*([\w_]+)/) {
 			$cur = $1;
@@ -52,10 +52,12 @@ while (<FIND>) {
 		}
 		$line =~ s/^(\s*source\s+)/$1package\/busybox\/config\//;
 		
-		$line =~ s/(\s+)((CONFIG|FDISK|USING|CROSS|EXTRA|PREFIX|FEATURE|HAVE|BUSYBOX)[\w_]*)/$1BUSYBOX_$2/g;
+		$line =~ s/^(\s*(prompt "[^"]+" if|config|depends|depends on|select|default|default \w if)\s+\!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
+		$line =~ s/(( \|\| | \&\& | \( )!?)([A-Z_])/$1BUSYBOX_CONFIG_$3/g;
+		$line =~ s/(\( ?!?)([A-Z_]+ (\|\||&&))/$1BUSYBOX_CONFIG_$2/g;
 		
 		if ($cur) {
-			($cur !~ /^CONFIG/ or $cur eq 'CONFIG_LFS') and do {
+			($cur eq 'LFS') and do {
 				$line =~ s/^(\s*(bool|tristate|string))\s*".+"$/$1/;
 			};
 			if ($line =~ /^\s*default/) {