diff --git a/Database/CDB/Read.hs b/Database/CDB/Read.hs
--- a/Database/CDB/Read.hs
+++ b/Database/CDB/Read.hs
@@ -14,14 +14,14 @@
 import Data.Word
 import Database.CDB.Packable
 import Database.CDB.Util
-import System.IO.Posix.MMap
+import System.IO.MMap
 
 -- |Internal representation of a CDB file on disk.
 data CDB = CDB { cdbMem :: ByteString }
 
 -- |Loads a CDB from a file.
 cdbInit :: FilePath -> IO CDB
-cdbInit f = liftM CDB $ unsafeMMapFile f 
+cdbInit f = liftM CDB $ mmapFileByteString f Nothing
 
 -- |Finds the first entry associated with a key in a CDB.
 cdbGet :: (Packable k, Unpackable v) => CDB -> k -> Maybe v
diff --git a/Database/CDB/Util.hs b/Database/CDB/Util.hs
--- a/Database/CDB/Util.hs
+++ b/Database/CDB/Util.hs
@@ -3,11 +3,9 @@
 import qualified Data.ByteString as ByteString
 import Data.ByteString (ByteString)
 import Data.Bits
-import Data.List
 import Data.Word
 
 -- gets the hash value for a key
 cdbHash :: ByteString -> Word32
 cdbHash =
-  foldl' (\h c -> ((h `shiftL` 5) + h) `xor` fromIntegral c) 5381 .
-  ByteString.unpack
+  ByteString.foldl' (\h c -> ((h `shiftL` 5) + h) `xor` fromIntegral c) 5381
diff --git a/Database/CDB/Write.hs b/Database/CDB/Write.hs
--- a/Database/CDB/Write.hs
+++ b/Database/CDB/Write.hs
@@ -10,6 +10,7 @@
 import Control.Monad.State
 import Data.Array.IO
 import Data.Array.Unboxed
+import Data.Array.Unsafe (unsafeFreeze)
 import qualified Data.ByteString as ByteString
 import Data.ByteString (ByteString)
 import Data.IORef
diff --git a/hs-cdb.cabal b/hs-cdb.cabal
--- a/hs-cdb.cabal
+++ b/hs-cdb.cabal
@@ -1,5 +1,5 @@
 name:hs-cdb
-version:0.1.1
+version:0.1.2
 License:BSD3
 License-File:LICENSE
 Author:Adam Smith
@@ -18,18 +18,19 @@
     For more information on the CDB file format, please see:
         <http://cr.yp.to/cdb.html>
     
-cabal-version: >= 1.6
+cabal-version: >= 1.10
 build-type:Simple
 
 Library
-  Build-Depends:array, base >= 4 && < 5, bytestring, bytestring-mmap, directory,
-                filepath, mtl
+  Build-Depends: array >= 0.4.0, base >= 4 && < 5, bytestring, mmap,
+    directory, filepath, mtl
   Exposed-modules:
     Database.CDB
     Database.CDB.Packable
     Database.CDB.Read
     Database.CDB.Util
     Database.CDB.Write
+  default-language: Haskell98
 
 source-repository head
   type: git
