diff --git a/Network/HTTP/Conduit.hs b/Network/HTTP/Conduit.hs
--- a/Network/HTTP/Conduit.hs
+++ b/Network/HTTP/Conduit.hs
@@ -202,7 +202,7 @@
 
 import qualified Data.ByteString              as S
 import qualified Data.ByteString.Lazy         as L
-import           Data.Conduit                 (ResumableSource, ($$+-), await, ($$++), ($$+), Source)
+import           Data.Conduit                 (ResumableSource, ($$+-), await, ($$++), ($$+), Source, addCleanup)
 import qualified Data.Conduit.Internal        as CI
 import qualified Data.Conduit.List            as CL
 import           Data.IORef                   (readIORef, writeIORef, newIORef)
@@ -308,11 +308,11 @@
     (key, res) <- allocate (Client.responseOpen req man) Client.responseClose
 #if MIN_VERSION_conduit(1, 2, 0)
     let rsrc = CI.ResumableSource
-            (flip CI.unConduitM CI.Done $ HCC.bodyReaderSource $ responseBody res)
+            (flip CI.unConduitM CI.Done $ addCleanup (const $ release key) $ HCC.bodyReaderSource $ responseBody res)
             (release key)
 #else
     let rsrc = CI.ResumableSource
-            (HCC.bodyReaderSource $ responseBody res)
+            (addCleanup (const $ release key) $ HCC.bodyReaderSource $ responseBody res)
             (release key)
 #endif
     return res { responseBody = rsrc }
diff --git a/http-conduit.cabal b/http-conduit.cabal
--- a/http-conduit.cabal
+++ b/http-conduit.cabal
@@ -1,5 +1,5 @@
 name:            http-conduit
-version:         2.1.4.4
+version:         2.1.4.5
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
