diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 2.0.2
+
+* Bug fix of flush limit.
+
 ## 2.0.1
 
 * Bug fix for defaultReadN.
diff --git a/Network/HTTP2/Server/Sender.hs b/Network/HTTP2/Server/Sender.hs
--- a/Network/HTTP2/Server/Sender.hs
+++ b/Network/HTTP2/Server/Sender.hs
@@ -73,6 +73,8 @@
           else
             C <$> readTQueue controlQ
 
+    hardLimit = confBufferSize - 512
+
     loop off = do
         x <- atomically $ dequeue off
         case x of
@@ -85,9 +87,9 @@
                 writeIORef (streamPrecedence strm) pre
                 off' <- outputOrEnqueueAgain out off
                 case off' of
-                    0                -> loop 0
-                    _ | off' > 15872 -> flushN off' >> loop 0 -- fixme: hard-coding
-                      | otherwise    -> loop off'
+                    0                    -> loop 0
+                    _ | off' > hardLimit -> flushN off' >> loop 0
+                      | otherwise        -> loop off'
             Flush -> flushN off >> loop 0
 
     control CFinish         _ = return (-1)
diff --git a/http2.cabal b/http2.cabal
--- a/http2.cabal
+++ b/http2.cabal
@@ -1,5 +1,5 @@
 Name:                   http2
-Version:                2.0.1
+Version:                2.0.2
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
