diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+1.0.0.0 [2024-03-07]
+--------------------
+* Fix Mini.Data.Map.insert
+* Fix Mini.Data.Set.insert
+
 0.1.0.0 [2024-03-07]
 --------------------
 * Initial upload to Hackage
diff --git a/Mini/Data/Map.hs b/Mini/Data/Map.hs
--- a/Mini/Data/Map.hs
+++ b/Mini/Data/Map.hs
@@ -763,17 +763,17 @@
   insertR l k a r =
     case compare k0 k of
       LT -> insertRl l k a r
-      EQ -> R l k a r
+      EQ -> R l k0 a0 r
       GT -> insertRr l k a r
   insertB l k a r =
     case compare k0 k of
       LT -> insertBl l k a r
-      EQ -> B l k a r
+      EQ -> B l k0 a0 r
       GT -> insertBr l k a r
   insertL l k a r =
     case compare k0 k of
       LT -> insertLl l k a r
-      EQ -> L l k a r
+      EQ -> L l k0 a0 r
       GT -> insertLr l k a r
   insertRl l k a r =
     map
@@ -840,7 +840,7 @@
       ( \rl rk ra rr _ _ ->
           case compare k0 rk of
             LT -> insertRrl l k a rl rk ra rr
-            EQ -> R l k a (B rl rk ra rr)
+            EQ -> R l k a (B rl k0 a0 rr)
             GT -> insertRrr l k a rl rk ra rr
       )
       (\rl rk ra rr _ _ -> R l k a (insertR rl rk ra rr))
@@ -851,7 +851,7 @@
       ( \ll lk la lr _ _ ->
           case compare k0 lk of
             LT -> insertLll ll lk la lr k a r
-            EQ -> L (B ll lk la lr) k a r
+            EQ -> L (B ll k0 a0 lr) k a r
             GT -> insertLlr ll lk la lr k a r
       )
       (\ll lk la lr _ _ -> L (insertR ll lk la lr) k a r)
diff --git a/Mini/Data/Set.hs b/Mini/Data/Set.hs
--- a/Mini/Data/Set.hs
+++ b/Mini/Data/Set.hs
@@ -597,17 +597,17 @@
   insertR l a r =
     case compare a0 a of
       LT -> insertRl l a r
-      EQ -> R l a r
+      EQ -> R l a0 r
       GT -> insertRr l a r
   insertB l a r =
     case compare a0 a of
       LT -> insertBl l a r
-      EQ -> B l a r
+      EQ -> B l a0 r
       GT -> insertBr l a r
   insertL l a r =
     case compare a0 a of
       LT -> insertLl l a r
-      EQ -> L l a r
+      EQ -> L l a0 r
       GT -> insertLr l a r
   insertRl l a r =
     set
@@ -674,7 +674,7 @@
       ( \rl ra rr _ _ ->
           case compare a0 ra of
             LT -> insertRrl l a rl ra rr
-            EQ -> R l a (B rl ra rr)
+            EQ -> R l a (B rl a0 rr)
             GT -> insertRrr l a rl ra rr
       )
       (\rl ra rr _ _ -> R l a (insertR rl ra rr))
@@ -685,7 +685,7 @@
       ( \ll la lr _ _ ->
           case compare a0 la of
             LT -> insertLll ll la lr a r
-            EQ -> L (B ll la lr) a r
+            EQ -> L (B ll a0 lr) a r
             GT -> insertLlr ll la lr a r
       )
       (\ll la lr _ _ -> L (insertR ll la lr) a r)
diff --git a/mini.cabal b/mini.cabal
--- a/mini.cabal
+++ b/mini.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               mini
-version:            0.1.0.0
+version:            1.0.0.0
 license:            MIT
 license-file:       LICENSE
 copyright:          (c) 2023-2024 Victor Wallsten
