diff --git a/include/applets.h.sh b/include/applets.h.sh
index be8b924..be117cf 100755
--- a/include/applets.h.sh
+++ b/include/applets.h.sh
@@ -4,8 +4,7 @@
 # enabling it. Run it after applets.h is generated.
 
 # CONFIG_applet names
-grep ^IF_ applets.h | grep -v IF_FEATURE_ | sed 's/IF_\([A-Z0-9._-]*\)(.*/\1/' \
-| grep -v MODPROBE_SMALL \
+grep ^IF_ applets.h | grep -v ^IF_FEATURE_ | sed 's/IF_\([A-Z0-9._-]*\)(.*/\1/' \
 | sort | uniq \
 >applets_APP1
 
diff --git a/make_single_applets.sh b/make_single_applets.sh
index 5b9393e..6473e4d 100755
--- a/make_single_applets.sh
+++ b/make_single_applets.sh
@@ -14,7 +14,6 @@
 grep ^IF_ include/applets.h \
 | grep -v ^IF_FEATURE_ \
 | sed 's/IF_\([A-Z0-9._-]*\)(.*/\1/' \
-| grep -v ^MODPROBE_SMALL \
 | sort | uniq
 `"
 
@@ -46,6 +45,11 @@
 		: $((fail++))
 		echo "Build error for ${app}"
 		mv .config busybox_config_${app}
+	elif ! grep -q '^#define NUM_APPLETS 1$' include/NUM_APPLETS.h; then
+		mv busybox busybox_${app}
+		: $((fail++))
+		echo "NUM_APPLETS != 1 for ${app}: `cat include/NUM_APPLETS.h`"
+		mv .config busybox_config_${app}
 	else
 		mv busybox busybox_${app}
 		rm busybox_make_${app}.log
@@ -53,5 +57,6 @@
 	mv .config.SV .config
 	#exit
 done
+touch .config # or else next "make" can be confused
 echo "Failures: $fail"
 test $fail = 0 # set exitcode
diff --git a/modutils/depmod.c b/modutils/depmod.c
index b934702..cfa9abb 100644
--- a/modutils/depmod.c
+++ b/modutils/depmod.c
@@ -9,15 +9,16 @@
  */
 //config:config DEPMOD
 //config:	bool "depmod"
-//config:	default n
-//config:	depends on !MODPROBE_SMALL
+//config:	default y
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  depmod generates modules.dep (and potentially modules.alias
 //config:	  and modules.symbols) that contain dependency information
 //config:	  for modprobe.
 
-//applet:IF_DEPMOD(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
+//applet:IF_DEPMOD(IF_NOT_MODPROBE_SMALL(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:endif
 
 //kbuild:lib-$(CONFIG_DEPMOD) += depmod.o modutils.o
 
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 2ebf4be..5949fe5 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -9,14 +9,15 @@
 //config:config INSMOD
 //config:	bool "insmod"
 //config:	default n
-//config:	depends on !MODPROBE_SMALL
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  insmod is used to load specified modules in the running kernel.
 
-//applet:IF_INSMOD(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP)))
 
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_INSMOD) += insmod.o modutils.o
+//kbuild:endif
 
 #include "libbb.h"
 #include "modutils.h"
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index ee85fb0..2458942 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -9,25 +9,26 @@
  */
 //config:config LSMOD
 //config:	bool "lsmod"
-//config:	default n
-//config:	depends on !MODPROBE_SMALL
+//config:	default y
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  lsmod is used to display a list of loaded modules.
 //config:
 //config:config FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 //config:	bool "Pretty output"
-//config:	default n
-//config:	depends on LSMOD
+//config:	default y
+//config:	depends on LSMOD && !MODPROBE_SMALL
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  This option makes output format of lsmod adjusted to
 //config:	  the format of module-init-tools for Linux kernel 2.6.
 //config:	  Increases size somewhat.
 
-//applet:IF_LSMOD(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP)))
 
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_LSMOD) += lsmod.o modutils.o
+//kbuild:endif
 
 //usage:#if !ENABLE_MODPROBE_SMALL
 //usage:#define lsmod_trivial_usage
diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
index e3a349b..652ff4d 100644
--- a/modutils/modprobe-small.c
+++ b/modutils/modprobe-small.c
@@ -25,11 +25,11 @@
 //config:	help
 //config:	  Check if the module is already loaded.
 
-//applet:IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, lsmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod))
+//applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_DEPMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod)))
+//applet:IF_INSMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod)))
+//applet:IF_LSMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, lsmod)))
+//applet:IF_RMMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod)))
 
 //kbuild:lib-$(CONFIG_MODPROBE_SMALL) += modprobe-small.o
 
@@ -930,7 +930,7 @@
 	IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(char *options;)
 
 	/* are we lsmod? -> just dump /proc/modules */
-	if ('l' == applet0) {
+	if (ENABLE_LSMOD && 'l' == applet0) {
 		xprint_and_close_file(xfopen_for_read("/proc/modules"));
 		return EXIT_SUCCESS;
 	}
@@ -940,14 +940,14 @@
 	/* Prevent ugly corner cases with no modules at all */
 	modinfo = xzalloc(sizeof(modinfo[0]));
 
-	if ('i' != applet0) { /* not insmod */
+	if (!ENABLE_INSMOD || 'i' != applet0) { /* not insmod */
 		/* Goto modules directory */
 		xchdir(CONFIG_DEFAULT_MODULES_DIR);
 	}
 	uname(&uts); /* never fails */
 
 	/* depmod? */
-	if ('d' == applet0) {
+	if (ENABLE_DEPMOD && 'd' == applet0) {
 		/* Supported:
 		 * -n: print result to stdout
 		 * -a: process all modules (default)
@@ -986,11 +986,11 @@
 	argv += optind;
 
 	/* are we rmmod? -> simulate modprobe -r */
-	if ('r' == applet0) {
+	if (ENABLE_RMMOD && 'r' == applet0) {
 		option_mask32 |= OPT_r;
 	}
 
-	if ('i' != applet0) { /* not insmod */
+	if (!ENABLE_INSMOD || 'i' != applet0) { /* not insmod */
 		/* Goto $VERSION directory */
 		xchdir(uts.release);
 	}
@@ -1014,7 +1014,7 @@
 		argv[1] = NULL;
 #endif
 
-	if ('i' == applet0) { /* insmod */
+	if (ENABLE_INSMOD && 'i' == applet0) { /* insmod */
 		size_t len;
 		void *map;
 
@@ -1034,7 +1034,7 @@
 	}
 
 	/* Try to load modprobe.dep.bb */
-	if ('r' != applet0) { /* not rmmod */
+	if (!ENABLE_RMMOD || 'r' != applet0) { /* not rmmod */
 		load_dep_bb();
 	}
 
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index d404ef9..09e3de6 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -9,8 +9,7 @@
  */
 //config:config MODPROBE
 //config:	bool "modprobe"
-//config:	default n
-//config:	depends on !MODPROBE_SMALL
+//config:	default y
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  Handle the loading of modules, and their dependencies on a high
@@ -18,8 +17,8 @@
 //config:
 //config:config FEATURE_MODPROBE_BLACKLIST
 //config:	bool "Blacklist support"
-//config:	default n
-//config:	depends on MODPROBE
+//config:	default y
+//config:	depends on MODPROBE && !MODPROBE_SMALL
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  Say 'y' here to enable support for the 'blacklist' command in
@@ -28,9 +27,11 @@
 //config:	  hardware autodetection scripts to load modules like evdev, frame
 //config:	  buffer drivers etc.
 
-//applet:IF_MODPROBE(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
 
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_MODPROBE) += modprobe.o modutils.o
+//kbuild:endif
 
 #include "libbb.h"
 #include "modutils.h"
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index e035883..4c4d508 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -10,14 +10,15 @@
 //config:config RMMOD
 //config:	bool "rmmod"
 //config:	default n
-//config:	depends on !MODPROBE_SMALL
 //config:	select PLATFORM_LINUX
 //config:	help
 //config:	  rmmod is used to unload specified modules from the kernel.
 
-//applet:IF_RMMOD(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP)))
 
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_RMMOD) += rmmod.o modutils.o
+//kbuild:endif
 
 //usage:#if !ENABLE_MODPROBE_SMALL
 //usage:#define rmmod_trivial_usage
