diff --git a/Config.h b/Config.h
index 1daf65c..d40a959 100644
--- a/Config.h
+++ b/Config.h
@@ -75,11 +75,12 @@
 #define BB_MKNOD
 #define BB_MKSWAP
 //#define BB_MKTEMP
-//#define BB_NC
+#define BB_MODPROBE
 #define BB_MORE
 #define BB_MOUNT
 //#define BB_MT
 #define BB_MV
+//#define BB_NC
 //#define BB_NSLOOKUP
 //#define BB_PING
 //#define BB_PIVOT_ROOT
diff --git a/Makefile b/Makefile
index 8b4c16f..7ee55f8 100644
--- a/Makefile
+++ b/Makefile
@@ -351,7 +351,7 @@
 nfsmount.o cmdedit.o: %.o: %.h
 sh.o: cmdedit.h
 $(OBJECTS): %.o: %.c Config.h busybox.h applets.h Makefile
-	$(CC) -I- $(CFLAGS) -I. $(patsubst %,-I%,$(subst :, ,$(BB_SRC_DIR))) -c $< -o $*.o
+	$(CC) $(CFLAGS) -I. $(patsubst %,-I%,$(subst :, ,$(BB_SRC_DIR))) -c $< -o $*.o
 
 $(PWD_OBJS): %.o: %.c Config.h busybox.h applets.h Makefile
 	- mkdir -p $(PWD_GRP)
diff --git a/applets.h b/applets.h
index 12a28d5..1fb6dcd 100644
--- a/applets.h
+++ b/applets.h
@@ -263,6 +263,9 @@
 #ifdef BB_MKTEMP
 	APPLET(mktemp, mktemp_main, _BB_DIR_BIN)
 #endif
+#ifdef BB_MODPROBE
+	APPLET(modprobe, modprobe_main, _BB_DIR_SBIN)
+#endif
 #ifdef BB_MORE
 	APPLET(more, more_main, _BB_DIR_BIN)
 #endif
diff --git a/applets/usage.h b/applets/usage.h
index b0b9722..2a20422 100644
--- a/applets/usage.h
+++ b/applets/usage.h
@@ -1084,6 +1084,13 @@
 	"$ ls -la /tmp/temp.mWiLjM\n" \
 	"-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n" 
 
+#define modprobe_trivial_usage \
+	"[FILE ...]"
+#define modprobe_full_usage \
+	"Used for hight level module loading and unloading."
+#define modprobe_example_usage \
+	"$ modprobe cdrom\n" 
+
 #define more_trivial_usage \
 	"[FILE ...]"
 #define more_full_usage \
diff --git a/cmdedit.c b/cmdedit.c
index 69f8337..3b47504 100644
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -170,7 +170,7 @@
 static void win_changed(int nsig)
 {
 	struct winsize win = { 0, 0, 0, 0 };
-	static __sighandler_t previous_SIGWINCH_handler;	/* for reset */
+	static sighandler_t previous_SIGWINCH_handler;	/* for reset */
 
 	/*   emulate      || signal call */
 	if (nsig == -SIGWINCH || nsig == SIGWINCH) {
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 1019147..794a1d0 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -61,6 +61,7 @@
 #include <stdlib.h>
 #include <fcntl.h>
 #include <signal.h>
+#include <termios.h>
 #include <sys/ioctl.h>
 #include "busybox.h"
 
diff --git a/include/applets.h b/include/applets.h
index 12a28d5..1fb6dcd 100644
--- a/include/applets.h
+++ b/include/applets.h
@@ -263,6 +263,9 @@
 #ifdef BB_MKTEMP
 	APPLET(mktemp, mktemp_main, _BB_DIR_BIN)
 #endif
+#ifdef BB_MODPROBE
+	APPLET(modprobe, modprobe_main, _BB_DIR_SBIN)
+#endif
 #ifdef BB_MORE
 	APPLET(more, more_main, _BB_DIR_BIN)
 #endif
diff --git a/include/libbb.h b/include/libbb.h
index bf5f0c1..c167e10 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -41,7 +41,7 @@
 #include "../busybox.h"
 #endif
 
-#if __GNU_LIBRARY__ < 5
+#if (__GNU_LIBRARY__ < 5) && (!defined __dietlibc__)
 /* libc5 doesn't define socklen_t */
 typedef unsigned int socklen_t;
 /* libc5 doesn't implement BSD 4.4 daemon() */
diff --git a/include/usage.h b/include/usage.h
index b0b9722..2a20422 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -1084,6 +1084,13 @@
 	"$ ls -la /tmp/temp.mWiLjM\n" \
 	"-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n" 
 
+#define modprobe_trivial_usage \
+	"[FILE ...]"
+#define modprobe_full_usage \
+	"Used for hight level module loading and unloading."
+#define modprobe_example_usage \
+	"$ modprobe cdrom\n" 
+
 #define more_trivial_usage \
 	"[FILE ...]"
 #define more_full_usage \
diff --git a/init.c b/init.c
index e057caa..ec144ea 100644
--- a/init.c
+++ b/init.c
@@ -84,7 +84,7 @@
 static const int RB_AUTOBOOT = 0x01234567;
 #endif
 
-#if __GNU_LIBRARY__ > 5
+#if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__) 
   #include <sys/reboot.h>
   #define init_reboot(magic) reboot(magic)
 #else
diff --git a/init/init.c b/init/init.c
index e057caa..ec144ea 100644
--- a/init/init.c
+++ b/init/init.c
@@ -84,7 +84,7 @@
 static const int RB_AUTOBOOT = 0x01234567;
 #endif
 
-#if __GNU_LIBRARY__ > 5
+#if (__GNU_LIBRARY__ > 5) || defined(__dietlibc__) 
   #include <sys/reboot.h>
   #define init_reboot(magic) reboot(magic)
 #else
diff --git a/libbb/libbb.h b/libbb/libbb.h
index bf5f0c1..c167e10 100644
--- a/libbb/libbb.h
+++ b/libbb/libbb.h
@@ -41,7 +41,7 @@
 #include "../busybox.h"
 #endif
 
-#if __GNU_LIBRARY__ < 5
+#if (__GNU_LIBRARY__ < 5) && (!defined __dietlibc__)
 /* libc5 doesn't define socklen_t */
 typedef unsigned int socklen_t;
 /* libc5 doesn't implement BSD 4.4 daemon() */
diff --git a/logger.c b/logger.c
index 623a4f9..9f73091 100644
--- a/logger.c
+++ b/logger.c
@@ -36,17 +36,18 @@
 #include <sys/syslog.h>
 
 #else
-/* We have to do this since the header file defines static
- * structures.  Argh.... bad libc, bad, bad...
- */
 #include <sys/syslog.h>
-
-typedef struct _code {
-	char *c_name;
-	int c_val;
-} CODE;
-extern CODE prioritynames[];
-extern CODE facilitynames[];
+#  ifndef __dietlibc__
+	/* We have to do this since the header file defines static
+	 * structures.  Argh.... bad libc, bad, bad...
+	 */
+	typedef struct _code {
+		char *c_name;
+		int c_val;
+	} CODE;
+	extern CODE prioritynames[];
+	extern CODE facilitynames[];
+#  endif
 #endif
 
 /* Decode a symbolic name to a numeric value 
diff --git a/ls.c b/ls.c
index 1019147..794a1d0 100644
--- a/ls.c
+++ b/ls.c
@@ -61,6 +61,7 @@
 #include <stdlib.h>
 #include <fcntl.h>
 #include <signal.h>
+#include <termios.h>
 #include <sys/ioctl.h>
 #include "busybox.h"
 
diff --git a/procps/ps.c b/procps/ps.c
index 7afb009..9e96a54 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -36,6 +36,7 @@
 #include <fcntl.h>
 #include <ctype.h>
 #include <string.h>
+#include <termios.h>
 #include <sys/ioctl.h>
 #include "busybox.h"
 
diff --git a/ps.c b/ps.c
index 7afb009..9e96a54 100644
--- a/ps.c
+++ b/ps.c
@@ -36,6 +36,7 @@
 #include <fcntl.h>
 #include <ctype.h>
 #include <string.h>
+#include <termios.h>
 #include <sys/ioctl.h>
 #include "busybox.h"
 
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index 69f8337..3b47504 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -170,7 +170,7 @@
 static void win_changed(int nsig)
 {
 	struct winsize win = { 0, 0, 0, 0 };
-	static __sighandler_t previous_SIGWINCH_handler;	/* for reset */
+	static sighandler_t previous_SIGWINCH_handler;	/* for reset */
 
 	/*   emulate      || signal call */
 	if (nsig == -SIGWINCH || nsig == SIGWINCH) {
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index 623a4f9..9f73091 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -36,17 +36,18 @@
 #include <sys/syslog.h>
 
 #else
-/* We have to do this since the header file defines static
- * structures.  Argh.... bad libc, bad, bad...
- */
 #include <sys/syslog.h>
-
-typedef struct _code {
-	char *c_name;
-	int c_val;
-} CODE;
-extern CODE prioritynames[];
-extern CODE facilitynames[];
+#  ifndef __dietlibc__
+	/* We have to do this since the header file defines static
+	 * structures.  Argh.... bad libc, bad, bad...
+	 */
+	typedef struct _code {
+		char *c_name;
+		int c_val;
+	} CODE;
+	extern CODE prioritynames[];
+	extern CODE facilitynames[];
+#  endif
 #endif
 
 /* Decode a symbolic name to a numeric value 
diff --git a/usage.h b/usage.h
index b0b9722..2a20422 100644
--- a/usage.h
+++ b/usage.h
@@ -1084,6 +1084,13 @@
 	"$ ls -la /tmp/temp.mWiLjM\n" \
 	"-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n" 
 
+#define modprobe_trivial_usage \
+	"[FILE ...]"
+#define modprobe_full_usage \
+	"Used for hight level module loading and unloading."
+#define modprobe_example_usage \
+	"$ modprobe cdrom\n" 
+
 #define more_trivial_usage \
 	"[FILE ...]"
 #define more_full_usage \
