diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+## 3.2.25
+
+* Removing Connection: and Transfer-Encoding: from HTTP/2
+  response header
+  [#707](https://github.com/yesodweb/wai/pull/707)
+
 ## 3.2.24
 
 * Fix HTTP2 unwanted GoAways on late WindowUpdate frames.
diff --git a/Network/Wai/Handler/Warp/HTTP2/HPACK.hs b/Network/Wai/Handler/Warp/HTTP2/HPACK.hs
--- a/Network/Wai/Handler/Warp/HTTP2/HPACK.hs
+++ b/Network/Wai/Handler/Warp/HTTP2/HPACK.hs
@@ -6,8 +6,9 @@
   , hpackEncodeHeaderLoop
   , hpackDecodeHeader
   , just
-  , addNecessaryHeaders
+  , fixHeaders
   , addHeader -- testing
+  , deleteUnnecessaryHeaders
   ) where
 
 import qualified Control.Exception as E
@@ -28,19 +29,18 @@
 
 {-# INLINE addHeader #-}
 addHeader :: Token -> ByteString -> ValueTable -> TokenHeaderList -> TokenHeaderList
-addHeader t "" tbl ths = case getHeaderValue t tbl of
-    Nothing -> ths
-    _       -> filter ((/= tokenServer) . fst) ths
+addHeader t "" _ ths
+  | t == tokenServer  = filter ((/= tokenServer) . fst) ths
 addHeader t v tbl ths = case getHeaderValue t tbl of
     Nothing -> (t,v) : ths
     _       -> ths
 
-addNecessaryHeaders :: Context
-                    -> Rspn
-                    -> InternalInfo
-                    -> S.Settings
-                    -> IO TokenHeaderList
-addNecessaryHeaders Context{..} rspn ii settings = do
+fixHeaders :: Context
+           -> Rspn
+           -> InternalInfo
+           -> S.Settings
+           -> IO TokenHeaderList
+fixHeaders Context{..} rspn ii settings = do
     date <- getDate ii
     let !s = rspnStatus rspn
         !status = packStatus s
@@ -49,7 +49,25 @@
         !ths1 = addHeader tokenServer defServer tbl ths0
         !ths2 = addHeader tokenDate date tbl ths1
         !ths3 = (tokenStatus, status) : ths2
-    return ths3
+        !ths4 = deleteUnnecessaryHeaders ths3 tbl
+    return ths4
+
+deleteUnnecessaryHeaders :: TokenHeaderList -> ValueTable -> TokenHeaderList
+deleteUnnecessaryHeaders htl0 tbl0 = loop headersToBeRemoved htl0
+  where
+    loop [] thl = thl
+    loop (t:ts) thl = case getHeaderValue t tbl0 of
+      Nothing -> thl
+      _       -> let !thl' = filter ((/= t) . fst) thl
+                 in loop ts thl'
+
+headersToBeRemoved :: [Token]
+headersToBeRemoved = [ tokenConnection
+                     , tokenTransferEncoding
+                     -- Keep-Alive:
+                     -- Proxy-Connection:
+                     -- Upgrade:
+                     ]
 
 ----------------------------------------------------------------
 
diff --git a/Network/Wai/Handler/Warp/HTTP2/Sender.hs b/Network/Wai/Handler/Warp/HTTP2/Sender.hs
--- a/Network/Wai/Handler/Warp/HTTP2/Sender.hs
+++ b/Network/Wai/Handler/Warp/HTTP2/Sender.hs
@@ -132,7 +132,7 @@
             !endOfStream = case rspn of
                 RspnNobody _ _ -> True
                 _              -> False
-        ths <- addNecessaryHeaders ctx rspn ii settings
+        ths <- fixHeaders ctx rspn ii settings
         kvlen <- headerContinue sid ths endOfStream off0
         off <- sendHeadersIfNecessary $ off0 + frameHeaderLength + kvlen
         case rspn of
diff --git a/test/ResponseHeaderSpec.hs b/test/ResponseHeaderSpec.hs
--- a/test/ResponseHeaderSpec.hs
+++ b/test/ResponseHeaderSpec.hs
@@ -55,13 +55,18 @@
                 hdrs = []
             (thl, vt) <- toHeaderTable hdrs
             addHeader tokenServer v vt thl `shouldBe` thl
-        it "deletes Server " $ do
+        it "deletes Server" $ do
             let v = ""
                 hdrs = [("Server","MyServer")]
                 hdrs1 = []
             (thl, vt) <- toHeaderTable hdrs
             (thl1, _) <- toHeaderTable hdrs1
             addHeader tokenServer v vt thl `shouldBe` thl1
+        it "keeps Server" $ do
+            let v = ""
+                hdrs = [("Server","MyServer"),("Content-Type","Text/HTML")]
+            (thl, vt) <- toHeaderTable hdrs
+            addHeader tokenContentType v vt thl `shouldBe` thl
 
 headers :: H.ResponseHeaders
 headers = [
diff --git a/warp.cabal b/warp.cabal
--- a/warp.cabal
+++ b/warp.cabal
@@ -1,5 +1,5 @@
 Name:                warp
-Version:             3.2.24
+Version:             3.2.25
 Synopsis:            A fast, light-weight web server for WAI applications.
 License:             MIT
 License-file:        LICENSE
