diff --git a/src/Web/Users/Postgresql.hs b/src/Web/Users/Postgresql.hs
--- a/src/Web/Users/Postgresql.hs
+++ b/src/Web/Users/Postgresql.hs
@@ -286,7 +286,12 @@
       Nothing -> return ()
       Just uuid ->
           do _ <-
-                  execute conn [sql|UPDATE login_token SET valid_until = valid_until + '? seconds' WHERE token_type = ? AND token = ?;|] (convertTtl timeToLive, tokenType, uuid)
+                  execute conn [sql|
+                                   UPDATE login_token
+                                   SET valid_until =
+                                            (CASE WHEN NOW() + '? seconds' > valid_until THEN NOW() + '? seconds' ELSE valid_until END)
+                                   WHERE token_type = ?
+                                   AND token = ?;|] (convertTtl timeToLive, convertTtl timeToLive, tokenType, uuid)
              return ()
 
 getTokenOwner :: Connection -> String -> T.Text -> IO (Maybe Int64)
diff --git a/users-postgresql-simple.cabal b/users-postgresql-simple.cabal
--- a/users-postgresql-simple.cabal
+++ b/users-postgresql-simple.cabal
@@ -1,5 +1,5 @@
 name:                users-postgresql-simple
-version:             0.5.0.0
+version:             0.5.0.1
 synopsis:            A PostgreSQL backend for the users package
 description:         This library is a backend driver using <http://hackage.haskell.org/package/postgresql-simple postgresql-simple> for
                      <http://hackage.haskell.org/package/users the "users" library>.
