diff --git a/debian/Config.h-udeb b/debian/Config.h-udeb
index b76abc0..2f46ff7 100644
--- a/debian/Config.h-udeb
+++ b/debian/Config.h-udeb
@@ -2,11 +2,12 @@
 // This file defines the feature set to be compiled into busybox.
 // When you turn things off here, they won't be compiled in at all.
 //
-//// This file is parsed by sed. You MUST use single line comments.
+//// This file is parsed by sed.  You MUST use single line comments.
 //   i.e.,  //#define BB_BLAH
 //
 //
 // BusyBox Applications
+//#define BB_ADJTIMEX
 //#define BB_AR
 #define BB_BASENAME
 #define BB_CAT
@@ -18,6 +19,7 @@
 #define BB_CLEAR
 //#define BB_CMP
 #define BB_CP
+//#define BB_CPIO
 #define BB_CUT
 #define BB_DATE
 //#define BB_DC
@@ -33,8 +35,8 @@
 #define BB_DU
 //#define BB_DUMPKMAP
 #define BB_ECHO
-//#define BB_ENV
-//#define BB_EXPR
+#define BB_ENV
+#define BB_EXPR
 //#define BB_FBSET
 //#define BB_FDFLUSH
 #define BB_FIND
@@ -60,13 +62,13 @@
 #define BB_LN
 //#define BB_LOADACM
 //#define BB_LOADFONT
-//#define BB_LOADKMAP
+#define BB_LOADKMAP
 #define BB_LOGGER
 //#define BB_LOGNAME
 #define BB_LS
 #define BB_LSMOD
 //#define BB_MAKEDEVS
-//#define BB_MD5SUM
+#define BB_MD5SUM
 #define BB_MKDIR
 //#define BB_MKFIFO
 //#define BB_MKFS_MINIX
@@ -79,7 +81,7 @@
 //#define BB_MT
 #define BB_MV
 //#define BB_NSLOOKUP
-//#define BB_PING
+#define BB_PING
 #define BB_PIVOT_ROOT
 #define BB_POWEROFF
 //#define BB_PRINTF
@@ -94,6 +96,7 @@
 #define BB_RMDIR
 //#define BB_RMMOD
 //#define BB_ROUTE
+//#define BB_RPM2CPIO
 //#define BB_RPMUNPACK
 #define BB_SED
 //#define BB_SETKEYCODES
@@ -108,12 +111,13 @@
 #define BB_TAR
 //#define BB_TEE
 //#define BB_TEST
-//#define BB_TELNET
+#define BB_TELNET
 //#define BB_TFTP
 #define BB_TOUCH
-//#define BB_TR
+#define BB_TR
 #define BB_TRUE_FALSE
 #define BB_TTY
+//#define BB_UNIX2DOS
 //#define BB_UUENCODE
 //#define BB_UUDECODE
 #define BB_UMOUNT
@@ -122,10 +126,10 @@
 //#define BB_UPDATE
 #define BB_UPTIME
 //#define BB_USLEEP
-//#define BB_VI
+#define BB_VI
 //#define BB_WATCHDOG
 #define BB_WC
-//#define BB_WGET
+#define BB_WGET
 #define BB_WHICH
 #define BB_WHOAMI
 #define BB_XARGS
@@ -134,17 +138,57 @@
 //
 //
 //
-
+// ---------------------------------------------------------
 // This is where feature definitions go.  Generally speaking,
 // turning this stuff off makes things a bit smaller (and less 
 // pretty/useful).
 //
 //
+// If you enabled BB_SH above, you may select one of the following shells.  
+// You can only select ONE of the following shells.  Sorry.
+//
+// lash is the very smallest shell (adds just 10k) and it is quite usable as a
+// command prompt, but it is not suitable for any but the most trivial scripting
+// (such as an initrd that calls insmod a few times) since it does not
+// understand Bourne shell grammer.  It does handle pipes, redirects, and job
+// control though.  Adding in command editing makes it very nice lightweight
+// command prompt.
+//#define BB_FEATURE_LASH
+//
+// hush is also quite small (just 18k) and it has very complete Bourne shell
+// grammer.  It handles if/then/else/fi just fine, but doesn't handle loops
+// like for/do/done or case/esac and such.  It also currently has a problem
+// with job control.
+//#define BB_FEATURE_HUSH
+//
+// msh: The minix shell (adds just 30k) is quite complete and handles things
+// like for/do/done, case/esac and all the things you expect a Bourne shell to
+// do.  It is not always pedantically correct about Bourne shell grammer (try
+// running the shell testscript "tests/sh.testcases" on it and compare vs
+// bash) but for most things it works quite well.  It also uses only vfork, so
+// it can be used on uClinux systems.  This was only recently added, so there is 
+// still room to shrink  it further...
+#define BB_FEATURE_MSH
+//
+// ash: This adds about 60k in the default configuration and is the most
+// complete and most pedantically correct shell included with busybox.  This
+// shell was also recently added, and several people (mainly Vladimir and Erik)
+// have been working on it.  There are a number of configurable things at the
+// top of ash.c as well, so check those out if you want to tweak things.  The
+// Posix math support is currently disabled (that bit of code was horrible) but
+// will be restored for the next BusyBox release.
+//#define BB_FEATURE_ASH
+//
 // BusyBox will, by default, malloc space for its buffers.  This costs code
 // size for the call to xmalloc.  You can use the following feature to have
 // them put on the stack.  For some very small machines with limited stack
 // space, this can be deadly.  For most folks, this works just fine...
 //#define BB_FEATURE_BUFFERS_GO_ON_STACK
+// The third alternative for buffer allocation is to use BSS.  This works
+// beautifully for computers with a real MMU (and OS support), but wastes
+// runtime RAM for uCLinux.  This behavior was the only one available for
+// BusyBox versions 0.48 and earlier.
+//#define BB_FEATURE_BUFFERS_GO_IN_BSS
 //
 // Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
 // thereby eliminating the need for the /proc filesystem and thereby saving
@@ -184,8 +228,8 @@
 // enable ls -L
 #define BB_FEATURE_LS_FOLLOWLINKS
 //
-// Change ping implementation -- simplified, featureless, but really small.
-//#define BB_FEATURE_SIMPLE_PING
+// Disable for a smaller (but less functional) ping
+#define BB_FEATURE_FANCY_PING
 //
 // Make init use a simplified /etc/inittab file (recommended).
 #define BB_FEATURE_USE_INITTAB
@@ -205,9 +249,9 @@
 // enable syslogd -C
 //#define BB_FEATURE_IPC_SYSLOG
 //
-//Simple tail implementation (2.34k vs 3k for the full one).
+//Disable for a simple tail implementation (2.34k vs 3k for the full one).
 //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. 
-#define BB_FEATURE_SIMPLE_TAIL
+#define BB_FEATURE_FANCY_TAIL
 //
 // Enable support for loop devices in mount
 #define BB_FEATURE_MOUNT_LOOP
@@ -224,9 +268,6 @@
 // (i.e., in case of an unreachable NFS system).
 #define BB_FEATURE_MOUNT_FORCE
 //
-// use -i (interactive) flag for rm
-//#define BB_FEATURE_RM_INTERACTIVE
-//
 // Enable support for creation of tar files.
 #define BB_FEATURE_TAR_CREATE
 //
@@ -236,9 +277,12 @@
 // Enable support for tar -z option (currently only works for inflating)
 #define BB_FEATURE_TAR_GZIP 
 //
-//// Enable reverse sort
+// Enable reverse sort
 #define BB_FEATURE_SORT_REVERSE
 //
+// Enable uniqe sort
+#define BB_FEATURE_SORT_UNIQUE
+//
 // Enable command line editing in the shell.  
 // Only relevant if BB_SH is enabled. On by default.
 #define BB_FEATURE_COMMAND_EDITING
@@ -254,7 +298,7 @@
 //were shell builtins.  Nice for staticly linking an emergency rescue shell,
 //among other things. Off by default.
 // Only relevant if BB_SH is enabled.
-#define BB_FEATURE_SH_STANDALONE_SHELL
+//#define BB_FEATURE_SH_STANDALONE_SHELL
 //
 //When this is enabled, busybox shell applets can be called using full path
 //names.  This causes applets (i.e., most busybox commands) to override
@@ -265,12 +309,11 @@
 // Only relevant if BB_SH is enabled. Off by default.
 //#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
 //
-// Some deeply embedded systems don't have usernames or even hostnames,
-// and the default prompt can look rather hideous on them. Uncomment
-// this option for a simpler, path-only prompt (which was the default until
-// around BusyBox-0.48). On by default.
+// Uncomment this option for a fancy shell prompt that includes the
+// current username and hostname.  On systems that don't have usernames
+// or hostnames, this can look hideous.
 // Only relevant if BB_SH is enabled.
-#define BB_FEATURE_SH_SIMPLE_PROMPT
+//#define BB_FEATURE_SH_FANCY_PROMPT
 //
 //Turn on extra fbset options
 //#define BB_FEATURE_FBSET_FANCY
@@ -287,6 +330,12 @@
 // Support module version checking
 //#define BB_FEATURE_INSMOD_VERSION_CHECKING
 //
+// Support for uClinux memory usage optimization, which will load the image
+// directly into the kernel memory.  This divides memory requrements by three.
+// If you are not running uClinux (i.e., your CPU has an MMU) leave this
+// disabled...
+//#define BB_FEATURE_INSMOD_LOADINKMEM
+//
 // Support for Minix filesystem, version 2
 //#define BB_FEATURE_MINIX2
 //
@@ -300,12 +349,12 @@
 //#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
 //
 // Enable ifconfig option "hw".  Currently works for only with "ether".
-//#define BB_FEATURE_IFCONFIG_HW
+#define BB_FEATURE_IFCONFIG_HW
 //
 // Enable busybox --install [-s]
 // to create links (or symlinks) for all the commands that are 
 // compiled into the binary.  (needs /proc filesystem)
-//#define BB_FEATURE_INSTALLER
+#define BB_FEATURE_INSTALLER
 //
 // Enable a nifty progress meter in wget (adds just under 2k)
 #define BB_FEATURE_WGET_STATUSBAR
@@ -340,6 +389,23 @@
 #define BB_FEATURE_TFTP_PUT
 #define BB_FEATURE_TFTP_GET
 //
+// features for vi
+#define BB_FEATURE_VI_COLON		// ":" colon commands, no "ex" mode
+#define BB_FEATURE_VI_YANKMARK		// Yank/Put commands and Mark cmds
+#define BB_FEATURE_VI_SEARCH		// search and replace cmds
+#define BB_FEATURE_VI_USE_SIGNALS	// catch signals
+#define BB_FEATURE_VI_DOT_CMD		// remember previous cmd and "." cmd
+#define BB_FEATURE_VI_READONLY		// vi -R and "view" mode
+#define BB_FEATURE_VI_SETOPTS		// set-able options,  ai ic showmatch
+#define BB_FEATURE_VI_SET		// :set
+#define BB_FEATURE_VI_WIN_RESIZE	// handle window resize
+//
+// Enable a if you system have setuped locale
+//#define BB_LOCALE_SUPPORT
+//
+// Support for TELNET to pass TERM type to remote host.  Adds 384 bytes.
+#define BB_FEATURE_TELNET_TTYPE
+//
 // End of Features List
 //
 //
@@ -354,20 +420,36 @@
 #if defined BB_SH
 	#if defined BB_FEATURE_COMMAND_EDITING 
 		#define BB_CMDEDIT
-		#ifndef BB_FEATURE_USE_TERMIOS
-			#define BB_FEATURE_USE_TERMIOS
-		#endif
 	#else
 		#undef BB_FEATURE_COMMAND_EDITING
 		#undef BB_FEATURE_COMMAND_TAB_COMPLETION
 		#undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
-		#define BB_FEATURE_SH_SIMPLE_PROMPT
+		#undef BB_FEATURE_SH_FANCY_PROMPT
+	#endif
+	#if ! defined BB_FEATURE_LASH && ! defined BB_FEATURE_HUSH && ! defined BB_FEATURE_MSH && ! defined BB_FEATURE_ASH
+		#define BB_FEATURE_MSH
+	#endif
+	#if defined BB_FEATURE_ASH && (defined BB_FEATURE_LASH || defined BB_FEATURE_HUSH || defined BB_FEATURE_MSH)
+		#undef  BB_FEATURE_LASH
+		#undef  BB_FEATURE_HUSH
+		#undef  BB_FEATURE_MSH
+	#elif defined BB_FEATURE_MSH && (defined BB_FEATURE_LASH || defined BB_FEATURE_HUSH || defined BB_FEATURE_MSH)
+		#undef  BB_FEATURE_LASH
+		#undef  BB_FEATURE_HUSH
+		#undef  BB_FEATURE_ASH
+	#elif defined BB_FEATURE_HUSH && (defined BB_FEATURE_LASH || defined BB_FEATURE_HUSH || defined BB_FEATURE_MSH)
+		#undef  BB_FEATURE_LASH
+		#undef  BB_FEATURE_MSH
+		#undef  BB_FEATURE_ASH
+	#elif defined BB_FEATURE_LASH && (defined BB_FEATURE_LASH || defined BB_FEATURE_HUSH || defined BB_FEATURE_MSH)
+		#undef  BB_FEATURE_HUSH
+		#undef  BB_FEATURE_MSH
+		#undef  BB_FEATURE_ASH
 	#endif
 #else
-	#undef BB_FEATURE_COMMAND_EDITING
 	#undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
 	#undef BB_FEATURE_SH_STANDALONE_SHELL
-	#undef BB_FEATURE_SH_SIMPLE_PROMPT
+	#undef BB_FEATURE_SH_FANCY_PROMPT
 #endif
 //
 #ifdef BB_KILLALL
@@ -380,38 +462,6 @@
 	#undef BB_FEATURE_LINUXRC
 #endif
 //
-#ifdef BB_GZIP
-	#ifndef BB_GUNZIP
-		#define BB_GUNZIP
-	#endif
-#endif
-//
-#ifdef BB_DPKG
-	#ifndef BB_DPKG_DEB
-		#define BB_DPKG_DEB
-	#endif
-#endif
-//
-#ifdef BB_DPKG_DEB
-	#ifndef BB_AR
-		#define BB_AR
-	#endif
-	#ifndef BB_TAR
-		#define BB_TAR
-	#endif 
-	#ifndef BB_FEATURE_TAR_GZIP
-		#define BB_FEATURE_TAR_GZIP
-	#endif
-#endif
-//
-#ifdef BB_TAR
-	#ifdef BB_FEATURE_TAR_GZIP
-		#ifndef BB_GUNZIP
-			#define BB_GUNZIP
-		#endif
-	#endif
-#endif
-//
 #if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
 	#define BB_NFSMOUNT
 #endif
@@ -433,7 +483,3 @@
 		#define BB_LOGREAD
 	#endif
 #endif
-//
-#if defined BB_DOS2UNIX 
-	#define BB_UNIX2DOS
-#endif
