--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -1,6 +1,10 @@
 #ifndef _LINUX_TIME_H
 #define _LINUX_TIME_H
 
+#ifndef __KERNEL__
+#include <time.h>
+#else
+
 #include <linux/types.h>
 
 #ifdef __KERNEL__
@@ -227,4 +231,6 @@ struct itimerval {
  */
 #define TIMER_ABSTIME			0x01
 
+#endif /* __KERNEL__ DEBIAN */
+
 #endif
--- a/include/linux/types.h
+++ b/include/linux/types.h
@@ -1,6 +1,14 @@
 #ifndef _LINUX_TYPES_H
 #define _LINUX_TYPES_H
 
+/* Debian: Use userland types instead.  */
+#ifndef __KERNEL__
+# include <sys/types.h>
+/* For other kernel headers.  */
+# include <linux/posix_types.h>
+# include <asm/types.h>
+#else
+
 #ifdef	__KERNEL__
 
 #define BITS_TO_LONGS(bits) \
@@ -162,6 +170,8 @@ typedef unsigned long blkcnt_t;
 
 #endif /* __KERNEL_STRICT_NAMES */
 
+#endif /* __KERNEL__ DEBIAN */
+
 /*
  * Below are truly Linux-specific types that should never collide with
  * any application/library that wants linux/types.h.
