--- /dev/null
+diff -ruN mm-1.1.3.orig/mm_core.c mm-1.1.3/mm_core.c
+--- mm-1.1.3.orig/mm_core.c Tue Jun 20 08:55:44 2000
++++ mm-1.1.3/mm_core.c Wed Jul 24 18:22:39 2002
+@@ -249,7 +249,7 @@
+
+ #if defined(MM_SHMT_MMPOSX)
+ shm_unlink(fnmem); /* Ok when it fails */
+- if ((fdmem = shm_open(fnmem, O_RDWR|O_CREAT, MM_CORE_FILEMODE)) == -1)
++ if ((fdmem = shm_open(fnmem, O_RDWR|O_CREAT|O_EXCL, MM_CORE_FILEMODE)) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to open tempfile");
+ if (ftruncate(fdmem, mm_core_mapoffset+size) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to truncate tempfile");
+@@ -275,7 +275,7 @@
+
+ #if defined(MM_SHMT_MMFILE)
+ unlink(fnmem);
+- if ((fdmem = open(fnmem, O_RDWR|O_CREAT, MM_CORE_FILEMODE)) == -1)
++ if ((fdmem = open(fnmem, O_RDWR|O_CREAT|O_EXCL, MM_CORE_FILEMODE)) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to open memory file");
+ if (ftruncate(fdmem, mm_core_mapoffset+size) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to truncate memory file");
+@@ -303,13 +303,13 @@
+
+ #if defined(MM_SEMT_FLOCK)
+ unlink(fnsem);
+- if ((fdsem = open(fnsem, O_RDWR|O_CREAT, MM_CORE_FILEMODE)) == -1)
++ if ((fdsem = open(fnsem, O_RDWR|O_CREAT|O_EXCL, MM_CORE_FILEMODE)) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to open semaphore file");
+ #endif /* MM_SEMT_FLOCK */
+
+ #if defined(MM_SEMT_FCNTL)
+ unlink(fnsem);
+- if ((fdsem = open(fnsem, O_RDWR|O_CREAT, MM_CORE_FILEMODE)) == -1)
++ if ((fdsem = open(fnsem, O_RDWR|O_CREAT|O_EXCL, MM_CORE_FILEMODE)) == -1)
+ FAIL(MM_ERR_CORE|MM_ERR_SYSTEM, "failed to open semaphore file");
+ #endif /* MM_SEMT_FCNTL */
+