diff --git a/Network/HTTP/Enumerator.hs b/Network/HTTP/Enumerator.hs
--- a/Network/HTTP/Enumerator.hs
+++ b/Network/HTTP/Enumerator.hs
@@ -90,7 +90,7 @@
 import Data.Enumerator
     ( Iteratee (..), Stream (..), catchError, throwError
     , yield, Step (..), Enumeratee, ($$), joinI, Enumerator, run_
-    , returnI, (>==>)
+    , returnI, (>==>), enumEOF
     )
 import qualified Data.Enumerator.List as EL
 import Network.HTTP.Enumerator.HttpParser
@@ -424,7 +424,7 @@
             if method == "HEAD" || sc == 204 -- No Content
                                 || sc == 304 -- Not Modified
                                 || (sc < 200 && sc >= 100)
-                then bodyStep s hs'
+                then enumEOF $$ bodyStep s hs'
                 else body' $ decompress $$ do
                         x <- bodyStep s hs'
                         flushStream
diff --git a/http-enumerator.cabal b/http-enumerator.cabal
--- a/http-enumerator.cabal
+++ b/http-enumerator.cabal
@@ -1,5 +1,5 @@
 name:            http-enumerator
-version:         0.6.5.6
+version:         0.6.6
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
