diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.7.1.2
+
+Fixed connections not being released if they were in use during the call to `release`.
+
 # 0.7.1
 
 Added `Exception` for `UsageError`.
diff --git a/hasql-pool.cabal b/hasql-pool.cabal
--- a/hasql-pool.cabal
+++ b/hasql-pool.cabal
@@ -1,7 +1,7 @@
 name:
   hasql-pool
 version:
-  0.7.1.2
+  0.7.1.3
 category:
   Hasql, Database, PostgreSQL
 synopsis:
diff --git a/library/Hasql/Pool.hs b/library/Hasql/Pool.hs
--- a/library/Hasql/Pool.hs
+++ b/library/Hasql/Pool.hs
@@ -16,8 +16,7 @@
 import Hasql.Session (Session)
 import qualified Hasql.Session as Session
 
--- |
--- A pool of connections to DB.
+-- | A pool of connections to DB.
 data Pool = Pool
   { -- | Connection settings.
     poolConnectionSettings :: Connection.Settings,
@@ -51,7 +50,7 @@
 -- | Use a connection from the pool to run a session and return the connection
 -- to the pool, when finished.
 --
--- Session failing with a 'Session.ClientError' get interpreted as a loss of
+-- Session failing with a 'Session.ClientError' gets interpreted as a loss of
 -- connection. In such case the connection does not get returned to the pool
 -- and a slot gets freed up for a new connection to be established the next
 -- time one is needed. The error still gets returned from this function.
@@ -101,12 +100,14 @@
               then writeTQueue poolConnectionQueue conn $> return ()
               else return $ Connection.release conn
 
--- |
--- A union over the connection establishment error and the session error.
+-- | Union over all errors that 'use' can result in.
 data UsageError
-  = ConnectionUsageError Connection.ConnectionError
-  | SessionUsageError Session.QueryError
-  | PoolIsReleasedUsageError
+  = -- | Attempt to establish a connection failed.
+    ConnectionUsageError Connection.ConnectionError
+  | -- | Session execution failed.
+    SessionUsageError Session.QueryError
+  | -- | Attempt to use a pool, which has already been called 'release' upon.
+    PoolIsReleasedUsageError
   deriving (Show, Eq)
 
 instance Exception UsageError
