diff --git a/Build.hs b/Build.hs
--- a/Build.hs
+++ b/Build.hs
@@ -33,7 +33,8 @@
 
 import qualified System.Posix.Types
 import           System.Directory
-import           System.FilePath (takeExtension, replaceExtension, (</>), takeDirectory)
+import           System.FilePath (takeExtension, replaceExtension, (</>), takeDirectory,
+                                    splitPath, joinPath)
 import           System.PosixCompat.Files (getFileStatus, setFileTimes,
                                              accessTime, modificationTime)
 
@@ -112,7 +113,7 @@
 removeHi _ hs = mapM_ removeFile' hiFiles
     where
       removeFile' file = try' (removeFile file) >> return ()
-      hiFiles          = map (\e -> "dist/build" </> replaceExtension hs e)
+      hiFiles          = map (\e -> "dist/build" </> removeSrc (replaceExtension hs e))
                              ["hi", "p_hi"]
 
 -- | change file mtime of .hs file to that of the dependency
@@ -124,7 +125,12 @@
   return ()
 
 hiFile :: FilePath -> FilePath
-hiFile hs = "dist/build" </> replaceExtension hs "hi"
+hiFile hs = "dist/build" </> removeSrc (replaceExtension hs "hi")
+
+removeSrc :: FilePath -> FilePath
+removeSrc f = case splitPath f of
+    ("src/" : xs) -> joinPath xs
+    _ -> f
 
 try' :: IO x -> IO (Either SomeException x)
 try' = try
diff --git a/hsfiles/mongo.hsfiles b/hsfiles/mongo.hsfiles
--- a/hsfiles/mongo.hsfiles
+++ b/hsfiles/mongo.hsfiles
@@ -45,8 +45,7 @@
 import qualified Network.Wai.Middleware.RequestLogger as RequestLogger
 import qualified Database.Persist
 import Network.HTTP.Client.Conduit (newManager)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -94,18 +93,7 @@
     p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s p manager dbconf logger
@@ -442,11 +430,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/hsfiles/mysql.hsfiles b/hsfiles/mysql.hsfiles
--- a/hsfiles/mysql.hsfiles
+++ b/hsfiles/mysql.hsfiles
@@ -47,8 +47,7 @@
 import Database.Persist.Sql (runMigration)
 import Network.HTTP.Client.Conduit (newManager)
 import Control.Monad.Logger (runLoggingT)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -96,18 +95,7 @@
     p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s p manager dbconf logger
@@ -446,11 +434,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/hsfiles/postgres-fay.hsfiles b/hsfiles/postgres-fay.hsfiles
--- a/hsfiles/postgres-fay.hsfiles
+++ b/hsfiles/postgres-fay.hsfiles
@@ -49,8 +49,7 @@
 import Network.HTTP.Client.Conduit (newManager)
 import Yesod.Fay (getFaySite)
 import Control.Monad.Logger (runLoggingT)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -99,18 +98,7 @@
     p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s p manager dbconf onCommand logger
@@ -483,11 +471,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/hsfiles/postgres.hsfiles b/hsfiles/postgres.hsfiles
--- a/hsfiles/postgres.hsfiles
+++ b/hsfiles/postgres.hsfiles
@@ -47,8 +47,7 @@
 import Database.Persist.Sql (runMigration)
 import Network.HTTP.Client.Conduit (newManager)
 import Control.Monad.Logger (runLoggingT)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -96,18 +95,7 @@
     p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s p manager dbconf logger
@@ -446,11 +434,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/hsfiles/simple.hsfiles b/hsfiles/simple.hsfiles
--- a/hsfiles/simple.hsfiles
+++ b/hsfiles/simple.hsfiles
@@ -42,8 +42,7 @@
     )
 import qualified Network.Wai.Middleware.RequestLogger as RequestLogger
 import Network.HTTP.Client.Conduit (newManager)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -87,18 +86,7 @@
     s <- staticSite
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s manager logger
@@ -120,8 +108,6 @@
 import Prelude
 import Yesod
 import Yesod.Static
-import Yesod.Auth
-import Yesod.Auth.BrowserId
 import Yesod.Default.Config
 import Yesod.Default.Util (addStaticContentExternal)
 import Network.HTTP.Client.Conduit (Manager, HasHttpManager (getHttpManager))
@@ -197,7 +183,6 @@
     urlRenderOverride _ _ = Nothing
 
     -- Routes not requiring authenitcation.
-    isAuthorized (AuthR _) _ = return Authorized
     isAuthorized FaviconR _ = return Authorized
     isAuthorized RobotsR _ = return Authorized
     -- Default to Authorized for now.
@@ -373,11 +358,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/hsfiles/sqlite.hsfiles b/hsfiles/sqlite.hsfiles
--- a/hsfiles/sqlite.hsfiles
+++ b/hsfiles/sqlite.hsfiles
@@ -47,8 +47,7 @@
 import Database.Persist.Sql (runMigration)
 import Network.HTTP.Client.Conduit (newManager)
 import Control.Monad.Logger (runLoggingT)
-import Control.Concurrent (forkIO, threadDelay)
-import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize, flushLogStr)
+import System.Log.FastLogger (newStdoutLoggerSet, defaultBufSize)
 import Network.Wai.Logger (clockDateCacher)
 import Data.Default (def)
 import Yesod.Core.Types (loggerSet, Logger (Logger))
@@ -96,18 +95,7 @@
     p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)
 
     loggerSet' <- newStdoutLoggerSet defaultBufSize
-    (getter, updater) <- clockDateCacher
-
-    -- If the Yesod logger (as opposed to the request logger middleware) is
-    -- used less than once a second on average, you may prefer to omit this
-    -- thread and use "(updater >> getter)" in place of "getter" below.  That
-    -- would update the cache every time it is used, instead of every second.
-    let updateLoop = do
-            threadDelay 1000000
-            updater
-            flushLogStr loggerSet'
-            updateLoop
-    _ <- forkIO updateLoop
+    (getter, _) <- clockDateCacher
 
     let logger = Yesod.Core.Types.Logger loggerSet' getter
         foundation = App conf s p manager dbconf logger
@@ -446,11 +434,11 @@
                  , directory                     >= 1.1        && < 1.3
                  , warp                          >= 3.0        && < 3.1
                  , data-default
-                 , aeson                         >= 0.6        && < 0.8
+                 , aeson                         >= 0.6        && < 0.9
                  , conduit                       >= 1.0        && < 2.0
                  , monad-logger                  >= 0.3        && < 0.4
-                 , fast-logger                   >= 2.1.4      && < 2.2
-                 , wai-logger                    >= 2.1        && < 2.2
+                 , fast-logger                   >= 2.2        && < 2.3
+                 , wai-logger                    >= 2.2        && < 2.3
 
 executable         PROJECTNAME
     if flag(library-only)
diff --git a/yesod-bin.cabal b/yesod-bin.cabal
--- a/yesod-bin.cabal
+++ b/yesod-bin.cabal
@@ -1,5 +1,5 @@
 name:            yesod-bin
-version:         1.2.12
+version:         1.2.12.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
