diff --git a/lib/Bytecode/Archive/Archive.cpp b/lib/Bytecode/Archive/Archive.cpp
index 3bb9a05..d5b56ca 100644
--- a/lib/Bytecode/Archive/Archive.cpp
+++ b/lib/Bytecode/Archive/Archive.cpp
@@ -137,8 +137,12 @@
     symTabSize(0), firstFileOffset(0), modules(), foreignST(0)
 {
   if (map) {
-    mapfile = new sys::MappedFile(filename);
-    base = (char*) mapfile->map();
+    std::string ErrMsg;
+    mapfile = new sys::MappedFile();
+    if (mapfile->open(filename, sys::MappedFile::READ_ACCESS, &ErrMsg))
+      throw ErrMsg;
+    if (!(base = (char*) mapfile->map(&ErrMsg)))
+      throw ErrMsg;
   }
 }
 
diff --git a/lib/Bytecode/Archive/ArchiveWriter.cpp b/lib/Bytecode/Archive/ArchiveWriter.cpp
index dc7ef67..a5b52f4 100644
--- a/lib/Bytecode/Archive/ArchiveWriter.cpp
+++ b/lib/Bytecode/Archive/ArchiveWriter.cpp
@@ -205,8 +205,12 @@
   const char* data = (const char*)member.getData();
   sys::MappedFile* mFile = 0;
   if (!data) {
-    mFile = new sys::MappedFile(member.getPath());
-    data = (const char*) mFile->map();
+    std::string ErrMsg;
+    mFile = new sys::MappedFile();
+    if (mFile->open(member.getPath(), sys::MappedFile::READ_ACCESS, &ErrMsg))
+      throw ErrMsg;
+    if (data = (const char*) mFile->map(&ErrMsg))
+      throw ErrMsg;
     fSize = mFile->size();
   }
 
@@ -437,8 +441,13 @@
     // we just wrote back in and copying it to the destination file.
 
     // Map in the archive we just wrote.
-    sys::MappedFile arch(TmpArchive);
-    const char* base = (const char*) arch.map();
+    sys::MappedFile arch;
+    std::string ErrMsg;
+    if (arch.open(TmpArchive, sys::MappedFile::READ_ACCESS, &ErrMsg))
+      throw ErrMsg;
+    const char* base;
+    if (!(base = (const char*) arch.map(&ErrMsg)))
+      throw ErrMsg;
 
     // Open another temporary file in order to avoid invalidating the 
     // mmapped data
