diff --git a/Yesod/Default/Main.hs b/Yesod/Default/Main.hs
--- a/Yesod/Default/Main.hs
+++ b/Yesod/Default/Main.hs
@@ -14,6 +14,7 @@
 import Network.Wai (Application)
 import Network.Wai.Handler.Warp
     (runSettings, defaultSettings, settingsPort, settingsHost, settingsOnException)
+import qualified Network.Wai.Handler.Warp as Warp
 import System.Directory (doesDirectoryExist, removeDirectoryRecursive)
 import Network.Wai.Middleware.Gzip (gzip, GzipFiles (GzipCacheFolder), gzipFiles, def)
 import Network.Wai.Middleware.Autohead (autohead)
@@ -68,12 +69,19 @@
     runSettings defaultSettings
         { settingsPort = appPort config
         , settingsHost = appHost config
-        , settingsOnException = const $ \e -> logFunc
+        , settingsOnException = const $ \e -> when (shouldLog' e) $ logFunc
             $(qLocation >>= liftLoc)
             "yesod"
             LevelError
             (toLogStr $ "Exception from Warp: " ++ show e)
         } app
+  where
+    shouldLog' =
+#if MIN_VERSION_wai(2,1,3)
+        Warp.defaultShouldDisplayException
+#else
+        const True
+#endif
 
 -- | Run your application continously, listening for SIGINT and exiting
 --   when received
diff --git a/yesod.cabal b/yesod.cabal
--- a/yesod.cabal
+++ b/yesod.cabal
@@ -1,5 +1,5 @@
 name:            yesod
-version:         1.2.5
+version:         1.2.5.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -23,7 +23,7 @@
 
     build-depends:   base                      >= 4.3      && < 5
                    , yesod-core                >= 1.2.2    && < 1.3
-                   , yesod-auth                >= 1.2      && < 1.3
+                   , yesod-auth                >= 1.2      && < 1.4
                    , yesod-persistent          >= 1.2      && < 1.3
                    , yesod-form                >= 1.3      && < 1.4
                    , monad-control             >= 0.3      && < 0.4
