diff --git a/Network/HTTP/Enumerator.hs b/Network/HTTP/Enumerator.hs
--- a/Network/HTTP/Enumerator.hs
+++ b/Network/HTTP/Enumerator.hs
@@ -108,6 +108,7 @@
 import Data.ByteString.Lazy.Internal (defaultChunkSize)
 import Codec.Binary.UTF8.String (encodeString)
 import qualified Blaze.ByteString.Builder as Blaze
+import qualified Blaze.ByteString.Builder.Internal.Write as Blaze
 import Data.Monoid (Monoid (..))
 
 -- | The OpenSSL library requires some initialization of variables to be used,
@@ -181,6 +182,7 @@
             (writeToIter $ SSL.write ssl)
             (readToEnum $ SSL.read ssl defaultChunkSize)
     liftIO $ SSL.shutdown ssl SSL.Unidirectional
+    liftIO $ hClose sock
     return a
 #else
     handle <- liftIO $ connectTo host' (PortNumber $ fromIntegral port')
@@ -587,7 +589,7 @@
         | S.null y = single x
         | otherwise =
             single x `mappend` Blaze.fromWord8 61 `mappend` single y
-    single = Blaze.fromWrite4List go . S.unpack
+    single = Blaze.fromWriteList go . S.unpack
     go 32 = Blaze.writeWord8 43 -- space to plus
     go c | unreserved c = Blaze.writeWord8 c
     go c =
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.4
+version:         0.2.1.5
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -30,7 +30,7 @@
                  , attoparsec            >= 0.8.0.2 && < 0.9
                  , attoparsec-enumerator >= 0.2     && < 0.3
                  , utf8-string           >= 0.3.4   && < 0.4
-                 , blaze-builder         >= 0.2     && < 0.3
+                 , blaze-builder         >= 0.2.1.0 && < 0.3
                  , zlib-bindings         >= 0.0.0   && < 0.1
     if flag(network-bytestring)
         build-depends: network               >= 2.2.1   && < 2.2.3
