diff --git a/Database/Persist/Sqlite.hs b/Database/Persist/Sqlite.hs
--- a/Database/Persist/Sqlite.hs
+++ b/Database/Persist/Sqlite.hs
@@ -18,7 +18,7 @@
 import Data.List (intercalate)
 import Data.IORef
 import qualified Data.Map as Map
-import Control.Monad.Invert (MonadInvertIO)
+import Control.Monad.Invert (MonadInvertIO, finally)
 
 withSqlitePool :: MonadInvertIO m
                => String
@@ -76,7 +76,7 @@
         ]
 
 execute' :: Sqlite.Statement -> [PersistValue] -> IO ()
-execute' stmt vals = do
+execute' stmt vals = flip finally (liftIO $ Sqlite.reset stmt) $ do
     Sqlite.bind stmt vals
     Sqlite.Done <- Sqlite.step stmt
     return ()
@@ -86,10 +86,9 @@
           -> [PersistValue]
           -> (RowPopper m -> m a)
           -> m a
-withStmt' stmt vals f = do
+withStmt' stmt vals f = flip finally (liftIO $ Sqlite.reset stmt) $ do
     liftIO $ Sqlite.bind stmt vals
     x <- f go
-    liftIO $ Sqlite.reset stmt
     return x
   where
     go = liftIO $ do
diff --git a/Database/Sqlite.hs b/Database/Sqlite.hs
--- a/Database/Sqlite.hs
+++ b/Database/Sqlite.hs
@@ -216,7 +216,7 @@
   error <- resetError statement
   case error of
     ErrorOK -> return ()
-    _ -> sqlError Nothing "reset" error
+    _ -> return () -- sqlError Nothing "reset" error
 
 foreign import ccall "sqlite3_finalize"
   finalizeC :: Ptr () -> IO Int
diff --git a/persistent-sqlite.cabal b/persistent-sqlite.cabal
--- a/persistent-sqlite.cabal
+++ b/persistent-sqlite.cabal
@@ -1,5 +1,5 @@
 name:            persistent-sqlite
-version:         0.3.0
+version:         0.3.0.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
