diff --git a/Network/Wai/Application/Classic/Header.hs b/Network/Wai/Application/Classic/Header.hs
--- a/Network/Wai/Application/Classic/Header.hs
+++ b/Network/Wai/Application/Classic/Header.hs
@@ -31,6 +31,10 @@
 hTransferEncoding :: HeaderName
 hTransferEncoding = "transfer-encoding"
 
+-- | Lookup key for Accept-Encoding.
+hAcceptEncoding :: HeaderName
+hAcceptEncoding = "accept-encoding"
+
 ----------------------------------------------------------------
 
 hostPort :: Request -> (ByteString, ByteString)
diff --git a/Network/Wai/Application/Classic/RevProxy.hs b/Network/Wai/Application/Classic/RevProxy.hs
--- a/Network/Wai/Application/Classic/RevProxy.hs
+++ b/Network/Wai/Application/Classic/RevProxy.hs
@@ -45,9 +45,12 @@
     mlen = case requestBodyLength req of
         ChunkedBody     -> Nothing
         KnownLength len -> Just len
-    fixHeader = addVia cspec req . filter p
-    p (k,_)
+    fixHeader = addVia cspec req . filter headerToBeRelay
+
+headerToBeRelay :: Header -> Bool
+headerToBeRelay (k,_)
       | k == hTransferEncoding = False
+      | k == hAcceptEncoding   = False
       | k == hContentLength    = False
       | k == hContentEncoding  = False -- See H.decompress.
       | otherwise              = True
@@ -59,7 +62,7 @@
     H.host           = revProxyDomain route
   , H.port           = revProxyPort route
   , H.secure         = isSecure req
-  , H.requestHeaders = addForwardedFor req hdr
+  , H.requestHeaders = addForwardedFor req $ filter headerToBeRelay hdr
   , H.path           = pathByteString path'
   , H.queryString    = dropQuestion query
   , H.requestBody    = bodyToHBody len body
diff --git a/wai-app-file-cgi.cabal b/wai-app-file-cgi.cabal
--- a/wai-app-file-cgi.cabal
+++ b/wai-app-file-cgi.cabal
@@ -1,5 +1,5 @@
 Name:                   wai-app-file-cgi
-Version:                2.0.3
+Version:                2.0.4
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
