diff --git a/Network/Wai/Middleware/AcceptOverride.hs b/Network/Wai/Middleware/AcceptOverride.hs
new file mode 100644
--- /dev/null
+++ b/Network/Wai/Middleware/AcceptOverride.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+module Network.Wai.Middleware.AcceptOverride
+    ( acceptOverride
+    ) where
+
+import Network.Wai
+import Network.Wai.Parse (parseQueryString)
+import qualified Data.ByteString.Char8 as B8
+
+acceptOverride :: Middleware
+acceptOverride app req =
+    app req'
+  where
+    req' =
+        case lookup "_accept" $ parseQueryString $ queryString req of
+            Nothing -> req
+            Just a -> req { requestHeaders = changeVal "Accept" (B8.unpack a) $ requestHeaders req}
+
+changeVal :: Eq a
+          => a
+          -> String
+          -> [(a, B8.ByteString)]
+          -> [(a, B8.ByteString)]
+changeVal key val old = (key, B8.pack val)
+                      : filter (\(k, _) -> k /= key) old
diff --git a/Network/Wai/Middleware/Debug.hs b/Network/Wai/Middleware/Debug.hs
--- a/Network/Wai/Middleware/Debug.hs
+++ b/Network/Wai/Middleware/Debug.hs
@@ -1,9 +1,11 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Network.Wai.Middleware.Debug (debug) where
 
-import Network.Wai (Middleware, requestMethod, pathInfo)
+import Network.Wai (Middleware, requestMethod, requestHeaders, pathInfo, queryString)
 import Data.ByteString.Char8 (unpack)
 import System.IO (hPutStrLn, stderr)
 import Control.Monad.IO.Class (liftIO)
+import Data.Maybe
 
 -- | Prints a message to 'stderr' for each request.
 debug :: Middleware
@@ -12,5 +14,9 @@
         [ unpack $ requestMethod req
         , " "
         , unpack $ pathInfo req
+        , unpack $ queryString req
+        , "\n"
+        , (++) "Accept: " $ unpack $ fromMaybe "" $ lookup "Accept" $ requestHeaders req
+        , "\n"
         ]
     app req
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:             0.3.1
+Version:             0.3.2
 Synopsis:            Provides some basic WAI handlers and middleware.
 Description:         The goal here is to provide common features without many dependencies.
 License:             BSD3
@@ -26,6 +26,7 @@
                      enumerator >= 0.4 && < 0.5,
                      blaze-builder >= 0.2.1.3 && < 0.3
   Exposed-modules:   Network.Wai.Handler.CGI
+                     Network.Wai.Middleware.AcceptOverride
                      Network.Wai.Middleware.Autohead
                      Network.Wai.Middleware.CleanPath
                      Network.Wai.Middleware.Debug
