diff --git a/src/Yesod/Auth/BCryptDB.hs b/src/Yesod/Auth/BCryptDB.hs
--- a/src/Yesod/Auth/BCryptDB.hs
+++ b/src/Yesod/Auth/BCryptDB.hs
@@ -185,7 +185,7 @@
   -- | Getter used by 'validatePass' and 'upgradePasswordHash' to
   --   retrieve the password hash from user data
   --
-  userPasswordSaltedHash :: user -> Text
+  userPasswordSaltedHash :: user -> Maybe Text
 
   {-# MINIMAL setPasswordSaltedHash, userPasswordSaltedHash #-}
 
@@ -232,10 +232,9 @@
   -> HandlerT master IO Bool
 validateCreds userID password = do
   -- Checks that hash and password match
-  mPassword <- runDB $ fmap (userPasswordSaltedHash . entityVal)
-                   <$> getBy userID
+  mUser <- runDB $ getBy userID
 
-  return $ case mPassword of
+  return $ case (userPasswordSaltedHash . entityVal =<< mUser) of
                 Nothing -> False
 
                 Just storedPassword ->
diff --git a/yesod-auth-bcryptdb.cabal b/yesod-auth-bcryptdb.cabal
--- a/yesod-auth-bcryptdb.cabal
+++ b/yesod-auth-bcryptdb.cabal
@@ -1,5 +1,5 @@
 name:                yesod-auth-bcryptdb
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            Authentication plugin for Yesod.
 description:
   This package provides authentication with passwords hashed and salted using
