diff --git a/Network/HTTP/Enumerator.hs b/Network/HTTP/Enumerator.hs
--- a/Network/HTTP/Enumerator.hs
+++ b/Network/HTTP/Enumerator.hs
@@ -89,7 +89,7 @@
 import Data.Enumerator
     ( Iteratee (..), Stream (..), catchError, throwError, consume
     , yield, Step (..), Enumeratee, ($$), joinI, Enumerator, run
-    , continue, enumList, returnI
+    , continue, enumList, returnI, enumEOF
     )
 import qualified Data.Enumerator as E
 import Network.HTTP.Enumerator.HttpParser
@@ -286,7 +286,9 @@
                     if ("content-encoding", "gzip") `elem` hs'
                         then joinI $ ungzip $$ x
                         else x
-            body' $ decompress $ bodyIter sc hs
+            if method == "HEAD"
+                then enumEOF $$ bodyIter sc hs
+                else body' $ decompress $ bodyIter sc hs
 
 chunkedEnumeratee :: MonadIO m => Enumeratee S.ByteString S.ByteString m a
 chunkedEnumeratee k@(Continue _) = do
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.2.1.3
+version:         0.2.1.4
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
