--- a/configure.ac
+++ b/configure.ac
@@ -74,9 +74,10 @@ case "$host_os" in
 	    [ KERNEL_INCLUDE="/lib/modules/`uname -r`/build/include" ])
 
     AC_CHECK_HEADER($KERNEL_INCLUDE/linux/pfkeyv2.h, ,
-	[ AC_CHECK_HEADER(/usr/src/linux/include/linux/pfkeyv2.h,
-	  KERNEL_INCLUDE=/usr/src/linux/include ,
-	  [ AC_MSG_ERROR([Unable to find linux-2.6 kernel headers. Aborting.]) ] ) ] )
+	[ AC_CHECK_HEADER($KERNEL_INCLUDE/uapi/linux/pfkeyv2.h, ,
+	  [ AC_CHECK_HEADER(/usr/src/linux/include/linux/pfkeyv2.h,
+	    KERNEL_INCLUDE=/usr/src/linux/include ,
+	    [ AC_MSG_ERROR([Unable to find linux-2.6 kernel headers. Aborting.]) ] ) ] ) ] )
     AC_SUBST(KERNEL_INCLUDE)
     # We need the configure script to run with correct kernel headers.
     # However we don't want to point to kernel source tree in compile time,
@@ -643,7 +644,14 @@ AC_EGREP_CPP(yes,
 #ifdef SADB_X_EXT_NAT_T_TYPE
 yes
 #endif
-], [kernel_natt="yes"])
+], [kernel_natt="yes"], [
+  AC_EGREP_CPP(yes,
+  [#include <uapi/linux/pfkeyv2.h>
+  #ifdef SADB_X_EXT_NAT_T_TYPE
+  yes
+  #endif
+  ], [kernel_natt="yes"])
+])
 	;;
 freebsd*|netbsd*)
 # NetBSD case
--- a/src/include-glibc/Makefile.am
+++ b/src/include-glibc/Makefile.am
@@ -1,14 +1,7 @@
-
-.includes: ${top_builddir}/config.status
-	ln -snf $(KERNEL_INCLUDE)/linux
-	touch .includes
-
-all: .includes
-
 EXTRA_DIST = \
   glibc-bugs.h \
   net/pfkeyv2.h \
   netinet/ipsec.h \
   sys/queue.h
 
-DISTCLEANFILES = .includes linux
+DISTCLEANFILES = linux
