diff --git a/valgrind-3.10.1-kernel-4.0.patch b/valgrind-3.10.1-kernel-4.0.patch
new file mode 100644
index 0000000..65b9ed0
--- /dev/null
+++ b/valgrind-3.10.1-kernel-4.0.patch
@@ -0,0 +1,96 @@
+commit bf803555d10b5b4c9223b24bf13845ee88d8f3b5
+Author: cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9>
+Date:   Mon Feb 23 20:19:03 2015 +0000
+
+    Fix configure for Linux kernel >= 4.0-rc1
+    In addition raise the minimal Linux version to 2.6 as there is almost
+    no test coverage for 2.4 and 2.6 was released in 2003.
+    
+    
+    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14955 a5019735-40e9-0310-863c-91ae7b9d1cf9
+
+diff --git a/configure.ac b/configure.ac
+index fe2897b..ebb0798 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -325,20 +325,14 @@ case "${host_os}" in
+         kernel=`uname -r`
+ 
+         case "${kernel}" in
+-             2.6.*|3.*) 
+-        	    AC_MSG_RESULT([2.6.x/3.x family (${kernel})])
+-        	    AC_DEFINE([KERNEL_2_6], 1, [Define to 1 if you're using Linux 2.6.x or Linux 3.x])
+-        	    ;;
+-
+-             2.4.*) 
+-        	    AC_MSG_RESULT([2.4 family (${kernel})])
+-        	    AC_DEFINE([KERNEL_2_4], 1, [Define to 1 if you're using Linux 2.4.x])
+-        	    ;;
+-
+-             *) 
++             0.*|1.*|2.0.*|2.1.*|2.2.*|2.3.*|2.4.*|2.5.*) 
+         	    AC_MSG_RESULT([unsupported (${kernel})])
+-        	    AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6])
++        	    AC_MSG_ERROR([Valgrind needs a Linux kernel >= 2.6])
+         	    ;;
++
++             *)
++        	    AC_MSG_RESULT([2.6 or later (${kernel})])
++                    ;;
+         esac
+ 
+         ;;
+diff -ur valgrind-3.10.1.orig/config.h.in valgrind-3.10.1/config.h.in
+--- valgrind-3.10.1.orig/config.h.in	2015-06-19 11:36:36.495314032 +0200
++++ valgrind-3.10.1/config.h.in	2015-06-19 11:36:50.000000000 +0200
+@@ -280,12 +280,6 @@
+ /* Define to 1 if you have the `utimensat' function. */
+ #undef HAVE_UTIMENSAT
+ 
+-/* Define to 1 if you're using Linux 2.4.x */
+-#undef KERNEL_2_4
+-
+-/* Define to 1 if you're using Linux 2.6.x or Linux 3.x */
+-#undef KERNEL_2_6
+-
+ /* configured default page size 4k */
+ #undef MIPS_PAGE_SHIFT
+ 
+diff -ur valgrind-3.10.1.orig/configure valgrind-3.10.1/configure
+--- valgrind-3.10.1.orig/configure	2015-06-19 11:36:36.496314042 +0200
++++ valgrind-3.10.1/configure	2015-06-19 11:36:56.837523466 +0200
+@@ -5554,27 +5554,16 @@
+         kernel=`uname -r`
+ 
+         case "${kernel}" in
+-             2.6.*|3.*)
+-        	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.6.x/3.x family (${kernel})" >&5
+-$as_echo "2.6.x/3.x family (${kernel})" >&6; }
+-
+-$as_echo "#define KERNEL_2_6 1" >>confdefs.h
+-
+-        	    ;;
+-
+-             2.4.*)
+-        	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.4 family (${kernel})" >&5
+-$as_echo "2.4 family (${kernel})" >&6; }
+-
+-$as_echo "#define KERNEL_2_4 1" >>confdefs.h
+-
+-        	    ;;
+-
+-             *)
++             0.*|1.*|2.0.*|2.1.*|2.2.*|2.3.*|2.4.*|2.5.*)
+         	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported (${kernel})" >&5
+ $as_echo "unsupported (${kernel})" >&6; }
+-        	    as_fn_error $? "Valgrind works on kernels 2.4, 2.6" "$LINENO" 5
++        	    as_fn_error $? "Valgrind needs a Linux kernel >= 2.6" "$LINENO" 5
+         	    ;;
++
++             *)
++        	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.6 or later (${kernel})" >&5
++$as_echo "2.6 or later (${kernel})" >&6; }
++                    ;;
+         esac
+ 
+         ;;
diff --git a/valgrind.spec b/valgrind.spec
index 369b5f7..270fc9b 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -3,7 +3,7 @@
 Summary: Tool for finding memory management bugs in programs
 Name: %{?scl_prefix}valgrind
 Version: 3.10.1
-Release: 11%{?dist}
+Release: 12%{?dist}
 Epoch: 1
 License: GPLv2+
 URL: http://www.valgrind.org/
@@ -101,6 +101,9 @@ Patch16: valgrind-3.10.1-demangle-q.patch
 # KDE#345928 callstack only contains current function for small stacks
 Patch17: valgrind-3.10.1-cfi-redzone.patch
 
+# KDE#344499 Fix compilation for Linux kernel >= 4.
+Patch18: valgrind-3.10.1-kernel-4.0.patch
+
 %if %{build_multilib}
 # Ensure glibc{,-devel} is installed for both multilib arches
 BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -216,6 +219,7 @@ Valgrind User Manual for details.
 %patch15 -p1
 %patch16 -p1
 %patch17 -p1
+%patch18 -p1
 
 %build
 # We need to use the software collection compiler and binutils if available.
@@ -371,6 +375,9 @@ echo ===============END TESTING===============
 %endif
 
 %changelog
+* Fri Jun 19 2015 Mark Wielaard <mjw@redhat.com> - 3.10.1-12
+- Add valgrind-3.10.1-kernel-4.0.patch.
+
 * Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.10.1-11
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild