diff --git a/Database/Persist/Sql/Types.hs b/Database/Persist/Sql/Types.hs
--- a/Database/Persist/Sql/Types.hs
+++ b/Database/Persist/Sql/Types.hs
@@ -11,6 +11,9 @@
 
 import Control.Exception (Exception)
 import Control.Monad.Trans.Resource (MonadResource (..), MonadThrow (..), ResourceT)
+#if MIN_VERSION_exceptions(0,6,0)
+import Control.Monad.Catch (MonadCatch, MonadMask)
+#endif
 import Control.Monad.Logger (MonadLogger (..), NoLoggingT)
 import Control.Monad.Trans.Control
 import Control.Monad.Trans.Class (MonadTrans (..))
@@ -87,7 +90,13 @@
     deriving Typeable
 
 newtype SqlPersistT m a = SqlPersistT { unSqlPersistT :: ReaderT Connection m a }
-    deriving (Monad, MonadIO, MonadTrans, Functor, Applicative, MonadPlus)
+    deriving (Monad, MonadIO, MonadTrans, Functor, Applicative, MonadPlus
+#if MIN_VERSION_exceptions(0,6,0)
+        , MonadThrow
+        , MonadCatch
+        , MonadMask
+#endif
+    )
 
 type SqlPersist = SqlPersistT
 {-# DEPRECATED SqlPersist "Please use SqlPersistT instead" #-}
@@ -95,8 +104,11 @@
 type SqlPersistM = SqlPersistT (NoLoggingT (ResourceT IO))
 
 #if MIN_VERSION_resourcet(1,1,0)
+#if !MIN_VERSION_exceptions(0,6,0)
 instance MonadThrow m => MonadThrow (SqlPersistT m) where
     throwM = lift . throwM
+#endif
+
 #else
 instance MonadThrow m => MonadThrow (SqlPersistT m) where
     monadThrow = lift . monadThrow
diff --git a/persistent.cabal b/persistent.cabal
--- a/persistent.cabal
+++ b/persistent.cabal
@@ -1,5 +1,5 @@
 name:            persistent
-version:         1.3.0.6
+version:         1.3.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -29,6 +29,7 @@
                    , containers               >= 0.2
                    , conduit                  >= 1.0
                    , resourcet                >= 0.4
+                   , exceptions
                    , monad-control            >= 0.3
                    , lifted-base              >= 0.1
                    , path-pieces              >= 0.1
