diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+0.5.0.0
+=======
+
+* Breaking changes in `servant-auth-token-0.5.0.0`.
+
 0.4.1.1
 =======
 
diff --git a/servant-auth-token-acid.cabal b/servant-auth-token-acid.cabal
--- a/servant-auth-token-acid.cabal
+++ b/servant-auth-token-acid.cabal
@@ -1,5 +1,5 @@
 name:                servant-auth-token-acid
-version:             0.4.1.1
+version:             0.5.0.0
 synopsis:            Acid-state backend for servant-auth-token server
 description:         Please see README.md
 homepage:            https://github.com/ncrashed/servant-auth-token#readme
@@ -31,7 +31,7 @@
     , mtl                     >= 2.2    && < 2.3
     , safe                    >= 0.3    && < 0.4
     , safecopy                >= 0.9    && < 0.10
-    , servant-auth-token      >= 0.4    && < 0.5
+    , servant-auth-token      >= 0.5    && < 0.6
     , servant-auth-token-api  >= 0.4    && < 0.5
     , servant-server          >= 0.9    && < 0.12
     , template-haskell        >= 2.11   && < 2.12
diff --git a/src/Servant/Server/Auth/Token/Acid.hs b/src/Servant/Server/Auth/Token/Acid.hs
--- a/src/Servant/Server/Auth/Token/Acid.hs
+++ b/src/Servant/Server/Auth/Token/Acid.hs
@@ -92,7 +92,7 @@
     insertSingleUseCode = liftAcidUpdate . $(conE $ mkName "InsertSingleUseCode")
     setSingleUseCodeUsed i mt = liftAcidUpdate $ $(conE $ mkName "SetSingleUseCodeUsed") i mt
     getUnusedCode c i t = liftAcidQuery $ $(conE $ mkName "GetUnusedCode") c i t
-    invalidatePermamentCodes i t = liftAcidUpdate $ $(conE $ mkName "InvalidatePermamentCodes") i t
+    invalidatePermanentCodes i t = liftAcidUpdate $ $(conE $ mkName "InvalidatePermanentCodes") i t
     selectLastRestoreCode i t = liftAcidQuery $ $(conE $ mkName "SelectLastRestoreCode") i t
     insertUserRestore = liftAcidUpdate . $(conE $ mkName "InsertUserRestore")
     findRestoreCode i rc t = liftAcidQuery $ $(conE $ mkName "FindRestoreCode") i rc t
@@ -130,7 +130,7 @@
     {-# INLINE insertSingleUseCode #-}
     {-# INLINE setSingleUseCodeUsed #-}
     {-# INLINE getUnusedCode #-}
-    {-# INLINE invalidatePermamentCodes #-}
+    {-# INLINE invalidatePermanentCodes #-}
     {-# INLINE selectLastRestoreCode #-}
     {-# INLINE insertUserRestore #-}
     {-# INLINE findRestoreCode #-}
diff --git a/src/Servant/Server/Auth/Token/Acid/Schema.hs b/src/Servant/Server/Auth/Token/Acid/Schema.hs
--- a/src/Servant/Server/Auth/Token/Acid/Schema.hs
+++ b/src/Servant/Server/Auth/Token/Acid/Schema.hs
@@ -147,7 +147,7 @@
   , mkName "insertSingleUseCode"
   , mkName "setSingleUseCodeUsed"
   , mkName "getUnusedCode"
-  , mkName "invalidatePermamentCodes"
+  , mkName "invalidatePermanentCodes"
   , mkName "selectLastRestoreCode"
   , mkName "insertUserRestore"
   , mkName "findRestoreCode"
@@ -380,13 +380,13 @@
           && userSingleUseCodeUsed usc == Nothing
           && (userSingleUseCodeExpire usc == Nothing || userSingleUseCodeExpire usc >= Just t)
 
-    -- | Invalidate all permament codes for user and set use time for them
-    invalidatePermamentCodes :: HasModelWrite $a => UserImplId -> UTCTime -> Update $a ()
-    invalidatePermamentCodes i t = modifyM $ \m -> m { modelUserSingleUseCodes = f $ modelUserSingleUseCodes m }
+    -- | Invalidate all permanent codes for user and set use time for them
+    invalidatePermanentCodes :: HasModelWrite $a => UserImplId -> UTCTime -> Update $a ()
+    invalidatePermanentCodes i t = modifyM $ \m -> m { modelUserSingleUseCodes = f $ modelUserSingleUseCodes m }
       where
-        f m = (fmap invalidate . M.filter isPermament $ m) `M.union` m
+        f m = (fmap invalidate . M.filter isPermanent $ m) `M.union` m
         invalidate su = su { userSingleUseCodeUsed = Just t }
-        isPermament usc =
+        isPermanent usc =
              userSingleUseCodeUser usc == i
           && userSingleUseCodeUsed usc == Nothing
           && userSingleUseCodeExpire usc == Nothing
