diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index f5d575448b05078a86d1f910a616549640fe16ff..5cc30d3c9df696ffe8851ecfe953964936dd0dab 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -18,6 +18,10 @@ tbd  Sun Microsystems, Inc.
        * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a
         removed cwd "./" (refer to Bugzilla 14399).
 
+Severity   : normal
+Bugzilla   : 12652
+Description: Add FMODE_EXEC to SLES10 SP1 series.
+
 Severity   : enhancement
 Bugzilla   : 13397
 Description: Add server support for vanilla-2.6.22.14.
diff --git a/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch b/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8ba560c940d68724d03ec7babd4800c1709f643d
--- /dev/null
+++ b/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch
@@ -0,0 +1,36 @@
+Index: LINUX-SRC-TREE/include/linux/fs.h
+===================================================================
+--- LINUX-SRC-TREE.orig/include/linux/fs.h
++++ LINUX-SRC-TREE/include/linux/fs.h
+@@ -61,6 +61,7 @@ extern int dir_notify_enable;
+ 
+ #define FMODE_READ 1
+ #define FMODE_WRITE 2
++#define FMODE_EXEC 16
+ 
+ /* Internal kernel extensions */
+ #define FMODE_LSEEK	4
+Index: LINUX-SRC-TREE/fs/exec.c
+===================================================================
+--- LINUX-SRC-TREE.orig/fs/exec.c
++++ LINUX-SRC-TREE/fs/exec.c
+@@ -129,7 +129,8 @@ asmlinkage long sys_uselib(const char __
+ 	struct nameidata nd;
+ 	int error;
+ 
+-	error = __user_path_lookup_open(library, LOOKUP_FOLLOW, &nd, FMODE_READ);
++	error = __user_path_lookup_open(library, LOOKUP_FOLLOW, &nd,
++					FMODE_READ | FMODE_EXEC);
+ 	if (error)
+ 		goto out;
+ 
+@@ -481,7 +483,8 @@ struct file *open_exec(const char *name)
+ 	int err;
+ 	struct file *file;
+ 
+-	err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd, FMODE_READ);
++	err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd,
++			       FMODE_READ | FMODE_EXEC);
+ 	file = ERR_PTR(err);
+ 
+ 	if (!err) {
diff --git a/lustre/kernel_patches/series/2.6-sles10.series b/lustre/kernel_patches/series/2.6-sles10.series
index 6fc4de851e1f2971717c0ecb56467a2656b3a7ce..8a3494302ede07921351ca170e49ab3a3fc6cc2b 100644
--- a/lustre/kernel_patches/series/2.6-sles10.series
+++ b/lustre/kernel_patches/series/2.6-sles10.series
@@ -11,3 +11,4 @@ blkdev_tunables-2.6-sles10.patch
 jbd-stats-2.6-sles10.patch
 i_filter_data.patch
 quota-fix-oops-in-invalidate_dquots.patch
+fmode-exec-2.6-sles10.patch