diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.4.6
+
+* Access log sequence not valid [#336](https://github.com/yesodweb/wai/issues/336)
+
 ## 3.0.4.5
 
 * Allow fast-logger 2.3
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
@@ -229,12 +229,6 @@
                          | otherwise             = []
                  in if null par then [""] else ansiColor White "  Params: " <> par <> ["\n"]
 
-    -- log the request immediately.
-    liftIO $ cb $ mconcat $ map toLogStr $
-        ansiMethod (requestMethod req) ++ [" ", rawPathInfo req, "\n"] ++
-        params ++
-        ansiColor White "  Accept: " ++ [accept, "\n"]
-
     t0 <- getCurrentTime
     app req' $ \rsp -> do
         let isRaw =
@@ -246,10 +240,14 @@
         t1 <- getCurrentTime
 
         -- log the status of the response
-        unless isRaw $ cb $ mconcat $ map toLogStr $
-            ansiColor White "  Status: " ++
-            ansiStatusCode stCode (stCode <> " " <> stMsg) ++
-            [" ", pack $ show $ diffUTCTime t1 t0, "\n"]
+        cb $ mconcat $ map toLogStr $
+            ansiMethod (requestMethod req) ++ [" ", rawPathInfo req, "\n"] ++
+            params ++
+            ansiColor White "  Accept: " ++ [accept, "\n"] ++
+            if isRaw then [] else
+                ansiColor White "  Status: " ++
+                ansiStatusCode stCode (stCode <> " " <> stMsg) ++
+                [" ", pack $ show $ diffUTCTime t1 t0, "\n"]
 
         sendResponse rsp
   where
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.4.5
+Version:             3.0.4.6
 Synopsis:            Provides some basic WAI handlers and middleware.
 description:
   Provides basic WAI handler and middleware functionality:
