diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.13
+
+* Autoflush handle [#466](https://github.com/yesodweb/wai/pull/466)
+
 ## 3.0.12
 
 * Add Network.Wai.Header.contentLength to read the Content-Length header of a response
diff --git a/Network/Wai/Middleware/RequestLogger.hs b/Network/Wai/Middleware/RequestLogger.hs
--- a/Network/Wai/Middleware/RequestLogger.hs
+++ b/Network/Wai/Middleware/RequestLogger.hs
@@ -19,10 +19,11 @@
     , IPAddrSource (..)
     ) where
 
-import System.IO (Handle, stdout)
+import System.IO (Handle, hFlush, stdout)
 import qualified Blaze.ByteString.Builder as B
 import qualified Data.ByteString as BS
 import Data.ByteString.Char8 (pack, unpack)
+import Control.Monad (when)
 import Control.Monad.IO.Class (liftIO)
 import Network.Wai
   ( Request(..), requestBodyLength, RequestBodyLength(..)
@@ -91,13 +92,13 @@
 mkRequestLogger RequestLoggerSettings{..} = do
     let (callback, flusher) =
             case destination of
-                Handle h -> (BS.hPutStr h . logToByteString, return ())
-                Logger l -> (pushLogStr l, flushLogStr l)
+                Handle h -> (BS.hPutStr h . logToByteString, when autoFlush (hFlush h))
+                Logger l -> (pushLogStr l, when autoFlush (flushLogStr l))
                 Callback c -> (c, return ())
     case outputFormat of
         Apache ipsrc -> do
             getdate <- getDateGetter flusher
-            apache <- initLogger ipsrc (LogCallback callback (return ())) getdate
+            apache <- initLogger ipsrc (LogCallback callback flusher) getdate
             return $ apacheMiddleware apache
         Detailed useColors -> detailedMiddleware
                                   (\str -> callback str >> flusher)
diff --git a/wai-extra.cabal b/wai-extra.cabal
--- a/wai-extra.cabal
+++ b/wai-extra.cabal
@@ -1,5 +1,5 @@
 Name:                wai-extra
-Version:             3.0.12
+Version:             3.0.13
 Synopsis:            Provides some basic WAI handlers and middleware.
 description:
   Provides basic WAI handler and middleware functionality:
