diff --git a/Database/Persist/Base.hs b/Database/Persist/Base.hs
--- a/Database/Persist/Base.hs
+++ b/Database/Persist/Base.hs
@@ -46,7 +46,7 @@
 import Data.Enumerator
 import qualified Control.Exception as E
 import Data.Bits (bitSize)
-import Control.Monad (when, liftM)
+import Control.Monad (liftM)
 
 -- | A raw value which can be stored in any backend and can be marshalled to
 -- and from a 'PersistField'.
diff --git a/Database/Persist/Pool.hs b/Database/Persist/Pool.hs
--- a/Database/Persist/Pool.hs
+++ b/Database/Persist/Pool.hs
@@ -9,7 +9,7 @@
 
 import Control.Concurrent.STM (atomically)
 import Control.Concurrent.STM.TVar
-    (TVar, newTVarIO, readTVar, writeTVar, readTVarIO)
+    (TVar, newTVarIO, readTVar, writeTVar)
 import Control.Exception (throwIO)
 import Data.Typeable
 import "MonadCatchIO-transformers" Control.Monad.CatchIO
@@ -32,7 +32,7 @@
 createPool mk fr mx f = do
     pd <- liftIO $ newTVarIO $ PoolData [] 0
     finally (f $ Pool mx pd mk) $ liftIO $ do
-        PoolData ress _ <- readTVarIO pd
+        PoolData ress _ <- atomically $ readTVar pd
         mapM_ fr ress
 
 data PoolExhaustedException = PoolExhaustedException
diff --git a/persistent.cabal b/persistent.cabal
--- a/persistent.cabal
+++ b/persistent.cabal
@@ -1,5 +1,5 @@
 name:            persistent
-version:         0.2.2
+version:         0.2.2.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
