diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for http3
 
+## 0.0.3
+
+* Fixes for HTTP/3 CONNECT proxy
+  [#4](https://github.com/kazu-yamamoto/http3/pull/4)
+
 ## 0.0.2
 
 * Catching up http2 v4.1.
diff --git a/Network/HTTP3/Control.hs b/Network/HTTP3/Control.hs
--- a/Network/HTTP3/Control.hs
+++ b/Network/HTTP3/Control.hs
@@ -54,7 +54,7 @@
           else do
             (done, st1) <- readIORef ref >>= parse0 bs
             writeIORef ref st1
-            if done then loop0 else loop
+            if done then loop else loop0
     loop = do
         bs <- recv 1024
         if bs == "" then
diff --git a/Network/HTTP3/Server.hs b/Network/HTTP3/Server.hs
--- a/Network/HTTP3/Server.hs
+++ b/Network/HTTP3/Server.hs
@@ -123,14 +123,14 @@
     case mvt of
       Nothing -> QUIC.resetStream strm H3MessageError
       Just ht@(_,vt) -> do
-          when (isNothing $ getHeaderValue tokenMethod vt) $ do
-              QUIC.resetStream strm H3MessageError
-          when (isNothing $ getHeaderValue tokenScheme vt) $ do
-              QUIC.resetStream strm H3MessageError
-          when (isNothing $ getHeaderValue tokenAuthority vt) $ do
-              QUIC.resetStream strm H3MessageError
-          when (isNothing $ getHeaderValue tokenPath vt) $ do
-              QUIC.resetStream strm H3MessageError
+          let mMethod    = getHeaderValue tokenMethod vt
+              mScheme    = getHeaderValue tokenScheme vt
+              mAuthority = getHeaderValue tokenAuthority vt
+              mPath      = getHeaderValue tokenPath vt
+          case (mMethod, mScheme, mAuthority, mPath) of
+              (Just "CONNECT", _, Just _, _)   -> return ()
+              (Just _, Just _, Just _, Just _) -> return ()
+              otherwise                        -> QUIC.resetStream strm H3MessageError
           -- fixme: Content-Length
           refI <- newIORef IInit
           refH <- newIORef Nothing
diff --git a/http3.cabal b/http3.cabal
--- a/http3.cabal
+++ b/http3.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               http3
-version:            0.0.2
+version:            0.0.3
 license:            BSD-3-Clause
 license-file:       LICENSE
 maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
