diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,13 @@
 # Changelog for Hedis
 
+## 0.10.6
+
+* PR #120. Add withConnect, withCheckedConnect
+
+## 0.10.5
+
+* PR #XXX Fix CI builds with updated Redis version
+
 ## 0.10.4
 
 * PR #112. Implement streams commands
diff --git a/hedis.cabal b/hedis.cabal
--- a/hedis.cabal
+++ b/hedis.cabal
@@ -1,5 +1,5 @@
 name:               hedis
-version:            0.10.4
+version:            0.10.6
 synopsis:
     Client library for the Redis datastore: supports full command set,
     pipelining.
diff --git a/src/Database/Redis/Core.hs b/src/Database/Redis/Core.hs
--- a/src/Database/Redis/Core.hs
+++ b/src/Database/Redis/Core.hs
@@ -3,7 +3,8 @@
     DeriveDataTypeable #-}
 
 module Database.Redis.Core (
-    Connection(..), ConnectError(..), connect, checkedConnect, disconnect, 
+    Connection(..), ConnectError(..), connect, checkedConnect, disconnect,
+    withConnect, withCheckedConnect,
     ConnectInfo(..), defaultConnectInfo,
     Redis(), runRedis, unRedis, reRedis,
     RedisCtx(..), MonadRedis(..),
@@ -257,6 +258,14 @@
 -- |Destroy all idle resources in the pool.
 disconnect :: Connection -> IO ()
 disconnect (Conn pool) = destroyAllResources pool
+
+-- | Memory bracket around 'connect' and 'disconnect'. 
+withConnect :: ConnectInfo -> (Connection -> IO c) -> IO c
+withConnect connInfo = bracket (connect connInfo) disconnect
+
+-- | Memory bracket around 'checkedConnect' and 'disconnect'
+withCheckedConnect :: ConnectInfo -> (Connection -> IO c) -> IO c
+withCheckedConnect connInfo = bracket (checkedConnect connInfo) disconnect
 
 -- The AUTH command. It has to be here because it is used in 'connect'.
 auth
