diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@
 and this project adheres to the
 [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
-## Unreleased
+## 0.1.0.1 - Unreleased
 
-## 0.1.0.0 - YYYY-MM-DD
+- Added `onException` to `startClientSimple` wrapper, so it can be timed out without leaking its client.
+
+## 0.1.0.0 - 2025-11-29
+
+Initial release.
diff --git a/quic-simple.cabal b/quic-simple.cabal
--- a/quic-simple.cabal
+++ b/quic-simple.cabal
@@ -5,8 +5,9 @@
 -- see: https://github.com/sol/hpack
 
 name:           quic-simple
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       Quick-start wrappers for QUIC
+description:    . A few layers over QUIC, to get the first bytes out faster. The top level is RPC-like, using Serialise as a codec. Copypaste the code and peel layers as you go to get more power and flexibility.
 category:       Network
 author:         IC Rainbow
 maintainer:     aenor.realm@gmail.com
@@ -49,7 +50,7 @@
     , iproute
     , memory
     , network
-    , quic
+    , quic >=0.2.7
     , serialise
     , stm
     , tls
diff --git a/src/Network/QUIC/Simple.hs b/src/Network/QUIC/Simple.hs
--- a/src/Network/QUIC/Simple.hs
+++ b/src/Network/QUIC/Simple.hs
@@ -15,11 +15,12 @@
 import Network.QUIC
 import Network.QUIC.Simple.Stream
 
-import Control.Monad (forever)
+import Codec.Serialise (Serialise)
 import Control.Concurrent (forkIO, killThread)
-import Control.Concurrent.STM (atomically, readTBQueue, writeTBQueue, newTBQueueIO)
 import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar)
-import Codec.Serialise (Serialise)
+import Control.Concurrent.STM (atomically, readTBQueue, writeTBQueue, newTBQueueIO)
+import Control.Exception (onException)
+import Control.Monad (forever)
 import Data.IP (IP(..))
 import Network.QUIC.Client (ClientConfig(..), defaultClientConfig)
 import Network.QUIC.Client qualified as Client
@@ -86,7 +87,7 @@
       atomically $ writeTBQueue writeQ query
       reply <- atomically $ readTBQueue readQ
       handler reply
-  requests <- takeMVar client
+  requests <- takeMVar client `onException` killThread tid
   pure
     ( killThread tid
     , \query -> do
