diff --git a/Crypto/PasswordStore.hs b/Crypto/PasswordStore.hs
--- a/Crypto/PasswordStore.hs
+++ b/Crypto/PasswordStore.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings, BangPatterns #-}
+{-# LANGUAGE CPP #-}
 -- |
 -- Module      : Crypto.PasswordStore
 -- Copyright   : (c) Peter Scott, 2011
@@ -149,8 +150,8 @@
            -> ByteString
            -- ^ The encoded message
 hmacSHA256 secret msg =
-  let digest = SHA.hmacSha256 (BL.fromStrict secret) (BL.fromStrict msg)
-    in BL.toStrict . SHA.bytestringDigest $ digest
+  let digest = SHA.hmacSha256 (fromStrict secret) (fromStrict msg)
+    in toStrict . SHA.bytestringDigest $ digest
 
 -- | PBKDF2 key-derivation function.
 -- For details see @http://tools.ietf.org/html/rfc2898@.
@@ -403,3 +404,26 @@
               where (a, g') = randomR ('\NUL', '\255') g
           salt   = makeSalt $ B.pack $ map fst (rands gen 16)
           newgen = snd $ last (rands gen 16)
+
+#if !MIN_VERSION_base(4, 6, 0)
+-- | Strict version of 'modifySTRef'
+modifySTRef' :: STRef s a -> (a -> a) -> ST s ()
+modifySTRef' ref f = do
+    x <- readSTRef ref
+    let x' = f x
+    x' `seq` writeSTRef ref x'
+#endif
+
+#if MIN_VERSION_bytestring(0, 10, 0)
+toStrict :: BL.ByteString -> BS.ByteString
+toStrict = BL.toStrict
+
+fromStrict :: BS.ByteString -> BL.ByteString
+fromStrict = BL.fromStrict
+#else
+toStrict :: BL.ByteString -> BS.ByteString
+toStrict = BS.concat . BL.toChunks
+
+fromStrict :: BS.ByteString -> BL.ByteString
+fromStrict = BL.fromChunks . return
+#endif
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -61,3 +61,10 @@
     runhaskell Tests.hs
 
 The code is under the BSD3 license.
+
+Contributors
+------
+
+Michael Snoyman contributed patches that made pwstore work with a wider range of GHC versions.
+
+Alfredo Dinapoli added PBKDF2 support, and a lower-level API for controlling algorithm and iteration count.
diff --git a/pwstore-fast.cabal b/pwstore-fast.cabal
--- a/pwstore-fast.cabal
+++ b/pwstore-fast.cabal
@@ -1,5 +1,5 @@
 Name:                pwstore-fast
-Version:             2.4
+Version:             2.4.1
 Synopsis:            Secure password storage.
 Description:         To store passwords securely, they should be salted,
                      then hashed with a slow hash function. This library
