--- gnupg-1.0.6/util/secmem.c	Wed May 23 09:27:20 2001
+++ gnupg-1.0.6-mod/util/secmem.c	Fri Sep 14 19:10:25 2001
@@ -129,6 +129,12 @@
 	if( err && errno )
 	    err = errno;
     }
+  #elif MLOCK_SET_PERMS
+	mprotect( p, n, PROT_EXEC | PROT_WRITE | PROT_READ);
+	/* try to set memory permissions */
+	err = mlock( p, n);
+	if( err && errno )
+		err = errno;
   #else
     err = mlock( p, n );
     if( err && errno )
--- gnupg-1.0.6/config.h	Sun Sep 16 11:11:15 2001
+++ gnupg-1.0.6-mod/config.h	Fri Sep 14 19:06:53 2001
@@ -96,7 +96,8 @@
 /* #undef HAVE_U16_TYPEDEF */
 /* #undef HAVE_U32_TYPEDEF */
 
-#define HAVE_BROKEN_MLOCK 1
+/*#define HAVE_BROKEN_MLOCK 1*/
+#define MLOCK_SET_PERMS 1
 
 /* defined if we have a /dev/random and /dev/urandom */
 /* #undef HAVE_DEV_RANDOM */
