diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,9 @@
 # Changelog for Hedis
 
+## 0.12.13
+
+* PR #150, Issue #143. Leaking sockets when connection fails
+
 ## 0.12.12
 
 * PR #149. Make withConnect friendly to transformer stack
diff --git a/hedis.cabal b/hedis.cabal
--- a/hedis.cabal
+++ b/hedis.cabal
@@ -1,5 +1,5 @@
 name:               hedis
-version:            0.12.12
+version:            0.12.13
 synopsis:
     Client library for the Redis datastore: supports full command set,
     pipelining.
diff --git a/src/Database/Redis/ProtocolPipelining.hs b/src/Database/Redis/ProtocolPipelining.hs
--- a/src/Database/Redis/ProtocolPipelining.hs
+++ b/src/Database/Redis/ProtocolPipelining.hs
@@ -95,7 +95,7 @@
     tryConnect = bracketOnError createSock NS.close $ \sock -> do
       try (NS.connect sock $ NS.addrAddress addr) >>= \case
         Right () -> return (Right sock)
-        Left err -> return (Left err)
+        Left err -> NS.close sock >> return (Left err)
       where
         createSock = NS.socket (NS.addrFamily addr)
                                (NS.addrSocketType addr)
