diff --git a/haskey.cabal b/haskey.cabal
--- a/haskey.cabal
+++ b/haskey.cabal
@@ -1,5 +1,5 @@
 name:                haskey
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            A transactional, ACID compliant, embeddable key-value store.
 description:
     Haskey is a transactional, ACID compliant, embeddable, scalable key-value
@@ -65,7 +65,7 @@
     exceptions              >=0.8.3 && <0.9,
     filepath                >=1.4  && <2,
     focus                   >=0.1.2 && <0.2,
-    haskey-btree            >=0.2 && <1,
+    haskey-btree            >=0.2.0.1 && <1,
     list-t                  >=0.2  && <2,
     lz4                     >=0.2  && <1,
     mtl                     >=2.1  && <3,
diff --git a/src/Database/Haskey/Alloc/Concurrent/Monad.hs b/src/Database/Haskey/Alloc/Concurrent/Monad.hs
--- a/src/Database/Haskey/Alloc/Concurrent/Monad.hs
+++ b/src/Database/Haskey/Alloc/Concurrent/Monad.hs
@@ -139,7 +139,9 @@
 
     freeOverflow oid = overflowType oid >>= \case
         Right i -> removeOldOverflow i
-        Left (DirtyOverflow i) -> do
+        Left (DirtyOverflow i) -> deleteOverflowData i
+
+    deleteOverflowData i = do
             root <- concurrentHandlesOverflowDir . writerHnds <$> get
             lift $ removeHandle (getOverflowHandle root i)
 
diff --git a/src/Database/Haskey/Alloc/Concurrent/Overflow.hs b/src/Database/Haskey/Alloc/Concurrent/Overflow.hs
--- a/src/Database/Haskey/Alloc/Concurrent/Overflow.hs
+++ b/src/Database/Haskey/Alloc/Concurrent/Overflow.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE LambdaCase #-}
@@ -14,6 +15,7 @@
 import Data.Maybe (fromMaybe, listToMaybe)
 import Data.Word (Word8)
 import qualified Data.List.NonEmpty as NE
+import qualified Data.Map as M
 
 import Numeric (showHex, readHex)
 
@@ -91,16 +93,21 @@
         freeAllNodes h nid
         deleteTree tx tree
   where
-    freeAllNodes :: (AllocM m, Key key, Value val)
+    freeAllNodes :: (AllocM m)
                  => Height h
-                 -> NodeId h key val
+                 -> NodeId h OverflowId ()
                  -> m ()
     freeAllNodes h nid = readNode h nid >>= \case
-        Leaf _ -> freeNode h nid
+        l@(Leaf _) -> freeOverflowInLeaf l >> freeNode h nid
         Idx idx -> do
             let subHgt = decrHeight h
             traverse_ (freeAllNodes subHgt) idx
             freeNode h nid
+
+    freeOverflowInLeaf :: (AllocM m)
+                       => Node 'Z OverflowId ()
+                       -> m ()
+    freeOverflowInLeaf (Leaf items) = mapM_ deleteOverflowData $ M.keys items
 
 --------------------------------------------------------------------------------
 
