diff --git a/System/IO/Posix/MMap.hs b/System/IO/Posix/MMap.hs
--- a/System/IO/Posix/MMap.hs
+++ b/System/IO/Posix/MMap.hs
@@ -102,6 +102,9 @@
     always (closeFd fd) $ do
         stat <- getFdStatus fd
         let size = fromIntegral (fileSize stat)
+        if size <= 0
+            then return empty -- BSD mmap won't accept a length of zero
+            else do
         ptr <- c_mmap size (fromIntegral fd)
         if ptr == nullPtr
             then error "System.IO.Posix.MMap.mmapFile: unable to mmap file"
diff --git a/bytestring-mmap.cabal b/bytestring-mmap.cabal
--- a/bytestring-mmap.cabal
+++ b/bytestring-mmap.cabal
@@ -1,5 +1,5 @@
 name:                bytestring-mmap
-version:             0.2.0
+version:             0.2.1
 synopsis:            mmap support for strict ByteStrings
 description:
     .
@@ -14,6 +14,7 @@
 license-file:        LICENSE
 author:              Don Stewart 
 maintainer:          Don Stewart <dons@galois.com>
+build-type:          Simple
 extra-source-files:  README
 cabal-version:      >= 1.2
 
@@ -23,7 +24,7 @@
 library
   build-depends: unix
   if flag(split-base)
-    build-depends:     base >= 3, bytestring >= 0.9
+    build-depends:     base >= 3 && < 6, bytestring >= 0.9
   else
     build-depends:     base < 3
   extensions:        CPP, ForeignFunctionInterface, BangPatterns
