Index: /trunk/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp	(revision 41052)
+++ /trunk/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp	(revision 41053)
@@ -503,7 +503,18 @@
                     }
 
-                    pMemDarwin->pMemDesc = pMemDesc;
-                    *ppMem = &pMemDarwin->Core;
-                    return VINF_SUCCESS;
+#if 1 /* Experimental code. */
+                    if (fExecutable)
+                        rc = rtR0MemObjNativeProtect(&pMemDarwin->Core, 0, cb, RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC);
+                    else
+#endif
+                        rc = VINF_SUCCESS;
+                    if (RT_SUCCESS(rc))
+                    {
+                        pMemDarwin->pMemDesc = pMemDesc;
+                        *ppMem = &pMemDarwin->Core;
+                        return VINF_SUCCESS;
+                    }
+
+                    rtR0MemObjDelete(&pMemDarwin->Core);
                 }
 
