diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # ChangeLog
 
+## 0.1.28
+
+* Fixing a bug of quic bit.
+
 ## 0.1.27
 
 * New API: `runWithSockets` for servers.
diff --git a/Network/QUIC/Client/Reader.hs b/Network/QUIC/Client/Reader.hs
--- a/Network/QUIC/Client/Reader.hs
+++ b/Network/QUIC/Client/Reader.hs
@@ -47,7 +47,8 @@
             Nothing -> close cs0
             Just bs -> do
                 now <- getTimeMicrosecond
-                pkts <- decodePackets bs False
+                let quicBit = greaseQuicBit $ getMyParameters conn
+                pkts <- decodePackets bs (not quicBit)
                 mapM_ (putQ now) pkts
                 loop
     logAction msg = connDebugLog conn ("debug: readerClient: " <> msg)
diff --git a/Network/QUIC/Server/Reader.hs b/Network/QUIC/Server/Reader.hs
--- a/Network/QUIC/Server/Reader.hs
+++ b/Network/QUIC/Server/Reader.hs
@@ -370,7 +370,7 @@
           Nothing -> UDP.close us
           Just bs -> do
               now <- getTimeMicrosecond
-              quicBit <- greaseQuicBit <$> getPeerParameters conn
+              let quicBit = greaseQuicBit $ getMyParameters conn
               pkts <- decodeCryptPackets bs (not quicBit)
               mapM_ (\(p,l,siz) -> writeRecvQ (connRecvQ conn) (mkReceivedPacket p now siz l)) pkts
               loop
diff --git a/quic.cabal b/quic.cabal
--- a/quic.cabal
+++ b/quic.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               quic
-version:            0.1.27
+version:            0.1.28
 license:            BSD3
 license-file:       LICENSE
 maintainer:         kazu@iij.ad.jp
