diff --git a/serversession-backend-persistent.cabal b/serversession-backend-persistent.cabal
--- a/serversession-backend-persistent.cabal
+++ b/serversession-backend-persistent.cabal
@@ -1,6 +1,6 @@
 cabal-version:   >= 1.10
 name:            serversession-backend-persistent
-version:         2.0.1
+version:         2.0.2
 license:         MIT
 license-file:    LICENSE
 author:          Felipe Lessa <felipe.lessa@gmail.com>
@@ -28,7 +28,7 @@
     , bytestring
     , cereal                    >= 0.4
     , path-pieces
-    , persistent                == 2.13.*
+    , persistent                >= 2.13.0.0 && < 2.15.0.0
     , tagged                    >= 0.7
     , text
     , time
diff --git a/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs b/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs
--- a/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs
+++ b/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 -- | Internal module exposing the guts of the package.  Use at
 -- your own risk.  No API stability guarantees apply.
 module Web.ServerSession.Backend.Persistent.Internal.Impl
@@ -14,25 +15,26 @@
   , throwSS
   ) where
 
-import Control.Applicative as A
-import Control.Monad (void)
-import Control.Monad.IO.Class (liftIO)
-import Data.Proxy (Proxy(..))
-import Data.Time (UTCTime)
-import Data.Typeable (Typeable)
-import Database.Persist (PersistEntity(..))
-import Web.PathPieces (PathPiece)
-import Web.ServerSession.Core
+import           Control.Applicative                                 as A
+import           Control.Monad                                       (void)
+import           Control.Monad.IO.Class                              (liftIO)
+import           Data.Proxy                                          (Proxy (..))
+import           Data.Time                                           (UTCTime)
+import           Data.Typeable                                       (Typeable)
+import           Database.Persist                                    (PersistEntity (..))
+import           Web.PathPieces                                      (PathPiece)
+import           Web.ServerSession.Core
 
-import qualified Control.Exception as E
-import qualified Data.Aeson as A
-import qualified Data.Text as T
-import qualified Database.Persist as P
-import qualified Database.Persist.EntityDef.Internal as P (EntityDef(..)) -- I need EntityDef constructor.
-import qualified Database.Persist.Quasi.Internal as P (UnboundEntityDef, unbindEntityDef)
-import qualified Database.Persist.Sql as P
+import qualified Control.Exception                                   as E
+import qualified Data.Aeson                                          as A
+import qualified Data.Text                                           as T
+import qualified Database.Persist                                    as P
+import qualified Database.Persist.EntityDef.Internal                 as P (EntityDef (..))
+import qualified Database.Persist.Quasi.Internal                     as P (UnboundEntityDef,
+                                                                           unbindEntityDef)
+import qualified Database.Persist.Sql                                as P
 
-import Web.ServerSession.Backend.Persistent.Internal.Types
+import           Web.ServerSession.Backend.Persistent.Internal.Types
 
 -- We can't use the Template Haskell since we want to generalize
 -- some fields.
@@ -57,6 +59,9 @@
 deriving instance Ord  (Decomposed sess) => Ord  (PersistentSession sess)
 deriving instance Show (Decomposed sess) => Show (PersistentSession sess)
 
+#if MIN_VERSION_persistent(2,14,0)
+instance P.SafeToInsert (PersistentSession sess)
+#endif
 
 type PersistentSessionId sess = Key (PersistentSession sess)
 
@@ -106,11 +111,19 @@
           pfd = P.persistFieldDef
 
   toPersistFields (PersistentSession a b c d e) =
+#if MIN_VERSION_persistent(2,14,0)
+    [ P.toPersistValue a
+    , P.toPersistValue b
+    , P.toPersistValue c
+    , P.toPersistValue d
+    , P.toPersistValue e ]
+#else
     [ P.SomePersistField a
     , P.SomePersistField b
     , P.SomePersistField c
     , P.SomePersistField d
     , P.SomePersistField e ]
+#endif
 
   fromPersistValues [a, b, c, d, e] =
     PersistentSession
