diff --git a/Changelog b/Changelog
index ebc69bd..5678f60 100644
--- a/Changelog
+++ b/Changelog
@@ -1,9 +1,11 @@
 0.43
 	* Busybox can now work perfectly when /proc is disabled, thereby 
-	    saving a bunch of memory (kernel /proc support is not thin).
-	    This is done by making use of some nice kernel patches I 
-	    wrote up to support the features that busybox requires and
-	    that /proc usually provides.
+	    saving a bunch of memory (kernel /proc support is not thin).  This
+	    is done by making use of some nice kernel patches I wrote up to
+	    support the features that busybox requires and that /proc usually
+	    provides.  To enable this, turn on BB_FEATURE_USE_DEVPS_PATCH and
+	    patch your kernel with the devps patch in the kernel-patches/
+	    directory. 
 	* Wrote basename, killall, and uptime.
 	* Added freeramdisk, which will free up all memory associated
 	    with a ram disk.  Contributed by Emanuele Caratti <wiz@iol.it>
diff --git a/busybox.def.h b/busybox.def.h
index 561c2ed..fdbb6fe 100644
--- a/busybox.def.h
+++ b/busybox.def.h
@@ -114,7 +114,7 @@
 // the /proc filesystem and thereby saving lots and lots 
 // memory for more important things.
 // You can't use this and USE_PROCFS at the same time...
-//#define BB_FEATURE_USE_DEVPS_N_DEVMTAB
+//#define BB_FEATURE_USE_DEVPS_PATCH
 //
 //
 // enable features that use the /proc filesystem (apps that 
diff --git a/lsmod.c b/lsmod.c
index b8834d3..27fabc1 100644
--- a/lsmod.c
+++ b/lsmod.c
@@ -27,7 +27,7 @@
 
 extern int lsmod_main(int argc, char **argv)
 {
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	char *cmd[] = { "cat", "/dev/modules", "\0" };
 #else
 #if ! defined BB_FEATURE_USE_PROCFS
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index b8834d3..27fabc1 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -27,7 +27,7 @@
 
 extern int lsmod_main(int argc, char **argv)
 {
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	char *cmd[] = { "cat", "/dev/modules", "\0" };
 #else
 #if ! defined BB_FEATURE_USE_PROCFS
diff --git a/mount.c b/mount.c
index f46664b..c29be51 100644
--- a/mount.c
+++ b/mount.c
@@ -46,7 +46,7 @@
 #include <sys/mount.h>
 #include <ctype.h>
 #include <fstab.h>
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 #include <linux/devmtab.h>
 #endif
 
@@ -255,7 +255,7 @@
 		fclose(f);
 	} else
 #endif
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	if (strcmp(filesystemType, "auto") == 0) {
 		int fd, i, numfilesystems;
 		char device[] = "/dev/mtab";
@@ -325,7 +325,7 @@
 	/* Only compiled in if BB_MTAB is not defined */
 	whine_if_fstab_is_missing();
 
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	if (argc == 1) {
 		int fd, i, numfilesystems;
 		char device[] = "/dev/mtab";
diff --git a/procps/ps.c b/procps/ps.c
index b9ff5bd..f01cf99 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -38,7 +38,7 @@
 #include <sys/ioctl.h>
 
 
-#if ! defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if ! defined BB_FEATURE_USE_DEVPS_PATCH
 
 /* The following is the first ps implementation --
  * the one using the /proc virtual filesystem.
@@ -184,7 +184,7 @@
 }
 
 
-#else /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#else /* BB_FEATURE_USE_DEVPS_PATCH */
 
 
 /* The following is the second ps implementation --
@@ -284,5 +284,5 @@
 	exit (0);
 }
 
-#endif /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#endif /* BB_FEATURE_USE_DEVPS_PATCH */
 
diff --git a/ps.c b/ps.c
index b9ff5bd..f01cf99 100644
--- a/ps.c
+++ b/ps.c
@@ -38,7 +38,7 @@
 #include <sys/ioctl.h>
 
 
-#if ! defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if ! defined BB_FEATURE_USE_DEVPS_PATCH
 
 /* The following is the first ps implementation --
  * the one using the /proc virtual filesystem.
@@ -184,7 +184,7 @@
 }
 
 
-#else /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#else /* BB_FEATURE_USE_DEVPS_PATCH */
 
 
 /* The following is the second ps implementation --
@@ -284,5 +284,5 @@
 	exit (0);
 }
 
-#endif /* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#endif /* BB_FEATURE_USE_DEVPS_PATCH */
 
diff --git a/util-linux/mount.c b/util-linux/mount.c
index f46664b..c29be51 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -46,7 +46,7 @@
 #include <sys/mount.h>
 #include <ctype.h>
 #include <fstab.h>
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 #include <linux/devmtab.h>
 #endif
 
@@ -255,7 +255,7 @@
 		fclose(f);
 	} else
 #endif
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	if (strcmp(filesystemType, "auto") == 0) {
 		int fd, i, numfilesystems;
 		char device[] = "/dev/mtab";
@@ -325,7 +325,7 @@
 	/* Only compiled in if BB_MTAB is not defined */
 	whine_if_fstab_is_missing();
 
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 	if (argc == 1) {
 		int fd, i, numfilesystems;
 		char device[] = "/dev/mtab";
diff --git a/utility.c b/utility.c
index c3f9947..cdf1c03 100644
--- a/utility.c
+++ b/utility.c
@@ -58,7 +58,7 @@
 
 /* Busybox mount uses either /proc/filesystems or /dev/mtab to get the 
  * list of available filesystems used for the -t auto option */ 
-#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_PATCH
 //#error Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again.
 #error "Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again."
 #endif
@@ -71,10 +71,10 @@
 #    if defined BB_MTAB
 const char mtab_file[] = "/etc/mtab";
 #    else
-#      if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#      if defined BB_FEATURE_USE_DEVPS_PATCH
 const char mtab_file[] = "/dev/mtab";
 #    else
-#        error With (BB_MOUNT||BB_UMOUNT||BB_DF) defined, you must define either BB_MTAB or ( BB_FEATURE_USE_PROCFS | BB_FEATURE_USE_DEVPS_N_DEVMTAB)
+#        error With (BB_MOUNT||BB_UMOUNT||BB_DF) defined, you must define either BB_MTAB or ( BB_FEATURE_USE_PROCFS | BB_FEATURE_USE_DEVPS_PATCH)
 #    endif
 #  endif
 #  endif
@@ -1249,11 +1249,11 @@
 
 #if defined BB_KILLALL || defined BB_FEATURE_LINUXRC && ( defined BB_HALT || defined BB_REBOOT || defined BB_POWEROFF )
 
-#ifdef BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#ifdef BB_FEATURE_USE_DEVPS_PATCH
 #include <linux/devps.h>
 #endif
 
-#if defined BB_FEATURE_USE_DEVPS_N_DEVMTAB
+#if defined BB_FEATURE_USE_DEVPS_PATCH
 /* findPidByName()
  *  
  *  This finds the pid of the specified process,
@@ -1314,7 +1314,7 @@
 
 	return thePid;
 }
-#else		/* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#else		/* BB_FEATURE_USE_DEVPS_PATCH */
 #if ! defined BB_FEATURE_USE_PROCFS
 #error Sorry, I depend on the /proc filesystem right now.
 #endif
@@ -1362,7 +1362,7 @@
 	}
 	return 0;
 }
-#endif							/* BB_FEATURE_USE_DEVPS_N_DEVMTAB */
+#endif							/* BB_FEATURE_USE_DEVPS_PATCH */
 #endif							/* BB_INIT || BB_HALT || BB_REBOOT || BB_KILLALL || BB_POWEROFF */
 
 #if defined BB_GUNZIP \
