diff --git a/Yesod/Auth/HashDB.hs b/Yesod/Auth/HashDB.hs
--- a/Yesod/Auth/HashDB.hs
+++ b/Yesod/Auth/HashDB.hs
@@ -98,11 +98,19 @@
   userPasswordHash :: user -> Maybe Text
   -- | Retrieve salt for password
   userPasswordSalt :: user -> Maybe Text
-  -- | Set hash and password
+
+  -- | Deprecated for the better named setSaltAndPasswordHash 
   setUserHashAndSalt :: Text    -- ^ Salt
                      -> Text    -- ^ Password hash
                      -> user -> user
+  setUserHashAndSalt = setSaltAndPasswordHash
 
+  -- | a callback for setPassword
+  setSaltAndPasswordHash :: Text    -- ^ Salt
+                     -> Text    -- ^ Password hash
+                     -> user -> user
+  setSaltAndPasswordHash = setUserHashAndSalt
+
 -- | Generate random salt. Length of 8 is chosen arbitrarily
 randomSalt :: MonadIO m => m Text
 randomSalt = pack `liftM` liftIO (replicateM 8 (randomRIO ('0','z')))
@@ -118,7 +126,7 @@
 --   passwords. It generates random salt and calculates proper hashes.
 setPassword :: (MonadIO m, HashDBUser user) => Text -> user -> m user
 setPassword pwd u = do salt <- randomSalt
-                       return $ setUserHashAndSalt salt (saltedHash salt pwd) u
+                       return $ setSaltAndPasswordHash salt (saltedHash salt pwd) u
 
 
 ----------------------------------------------------------------
@@ -256,6 +264,6 @@
 instance HashDBUser (UserGeneric backend) where
   userPasswordHash = Just . userPassword
   userPasswordSalt = Just . userSalt
-  setUserHashAndSalt s h u = u { userSalt     = s
+  setSaltAndPasswordHash s h u = u { userSalt     = s
                                , userPassword = h
                                }
diff --git a/Yesod/Auth/OpenId.hs b/Yesod/Auth/OpenId.hs
--- a/Yesod/Auth/OpenId.hs
+++ b/Yesod/Auth/OpenId.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 module Yesod.Auth.OpenId
     ( authOpenId
+    , authOpenIdExtended
     , forwardUrl
     ) where
 
@@ -26,7 +27,10 @@
 forwardUrl = PluginR "openid" ["forward"]
 
 authOpenId :: YesodAuth m => AuthPlugin m
-authOpenId =
+authOpenId = authOpenIdExtended []
+
+authOpenIdExtended :: YesodAuth m => [(Text, Text)] -> AuthPlugin m
+authOpenIdExtended extensionFields =
     AuthPlugin "openid" dispatch login
   where
     complete = PluginR "openid" ["complete"]
@@ -57,7 +61,7 @@
                 render <- getUrlRender
                 toMaster <- getRouteToMaster
                 let complete' = render $ toMaster complete
-                res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing []
+                res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing extensionFields 
                 attempt
                   (\err -> do
                         setMessage $ toHtml $ show err
@@ -87,5 +91,5 @@
             setMessage $ toHtml $ show err
             redirect RedirectTemporary $ toMaster LoginR
         let onSuccess (OpenId.Identifier ident, _) =
-                setCreds True $ Creds "openid" ident []
+                setCreds True $ Creds "openid" ident gets'
         attempt onFailure onSuccess res
diff --git a/yesod-auth.cabal b/yesod-auth.cabal
--- a/yesod-auth.cabal
+++ b/yesod-auth.cabal
@@ -1,5 +1,5 @@
 name:            yesod-auth
-version:         0.7.4
+version:         0.7.5
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman, Patrick Brisbin
