Index: /trunk/source/lisp-kernel/memory.c
===================================================================
--- /trunk/source/lisp-kernel/memory.c	(revision 14148)
+++ /trunk/source/lisp-kernel/memory.c	(revision 14149)
@@ -350,4 +350,11 @@
   if (status) {
     status = errno;
+    
+    if (status == ENOMEM) {
+      void *mapaddr = mmap(addr,nbytes, PROT_READ | PROT_EXEC, MAP_ANON|MAP_PRIVATE|MAP_FIXED,-1,0);
+      if (mapaddr != MAP_FAILED) {
+        return 0;
+      }
+    }
     Bug(NULL, "couldn't protect " DECIMAL " bytes at " LISP ", errno = %d", nbytes, addr, status);
   }
