diff --git a/library/StmContainers/Multimap.hs b/library/StmContainers/Multimap.hs
--- a/library/StmContainers/Multimap.hs
+++ b/library/StmContainers/Multimap.hs
@@ -12,8 +12,8 @@
   deleteByKey,
   reset,
   unfoldlM,
-  unfoldMKeys,
-  unfoldMByKey,
+  unfoldlMKeys,
+  unfoldlMByKey,
   listT,
   listTKeys,
   listTByKey,
@@ -149,14 +149,14 @@
 
 -- |
 -- Stream keys actively.
-unfoldMKeys :: Multimap key value -> UnfoldlM STM key
-unfoldMKeys (Multimap m) =
+unfoldlMKeys :: Multimap key value -> UnfoldlM STM key
+unfoldlMKeys (Multimap m) =
   fmap fst (A.unfoldlM m)
 
 -- |
 -- Stream values by a key actively.
-unfoldMByKey :: (Eq key, Hashable key) => key -> Multimap key value -> UnfoldlM STM value
-unfoldMByKey key (Multimap m) =
+unfoldlMByKey :: (Eq key, Hashable key) => key -> Multimap key value -> UnfoldlM STM value
+unfoldlMByKey key (Multimap m) =
   lift (A.lookup key m) >>= maybe mempty B.unfoldlM
 
 -- |
diff --git a/stm-containers.cabal b/stm-containers.cabal
--- a/stm-containers.cabal
+++ b/stm-containers.cabal
@@ -1,5 +1,5 @@
 name: stm-containers
-version: 1.1.0.5
+version: 1.2
 synopsis: Containers for STM
 description:
   This library is based on an STM-specialized implementation of
diff --git a/test/Main/BimapTests.hs b/test/Main/BimapTests.hs
--- a/test/Main/BimapTests.hs
+++ b/test/Main/BimapTests.hs
@@ -37,7 +37,33 @@
 test_insertOverwrites = do
   m <- newIO :: IO (Bimap Int Int)
   atomically $ insertRight 3 1 m
+  assertEqual 1 =<< atomically (size m)
   atomically $ insertRight 3 2 m
+  assertEqual 1 =<< atomically (size m)
   assertEqual Nothing =<< atomically (lookupRight 1 m)
   assertEqual (Just 3) =<< atomically (lookupRight 2 m)
   assertEqual (Just 2) =<< atomically (lookupLeft 3 m)
+  assertEqual Nothing =<< atomically (focusRight Focus.lookup 1 m)
+  assertEqual (Just 3) =<< atomically (focusRight Focus.lookup 2 m)
+  atomically $ focusRight (Focus.insert 3) 4 m
+  assertEqual 1 =<< atomically (size m)
+  assertEqual Nothing =<< atomically (lookupRight 1 m)
+  assertEqual Nothing =<< atomically (lookupRight 2 m)
+  assertEqual (Just 3) =<< atomically (lookupRight 4 m)
+
+test_insertOverwrites' = do
+  m <- newIO :: IO (Bimap Int Char)
+  atomically $ insertLeft 'a' 1 m
+  assertEqual 1 =<< atomically (size m)
+  atomically $ insertLeft 'a' 2 m
+  assertEqual 1 =<< atomically (size m)
+  assertEqual Nothing =<< atomically (lookupLeft 1 m)
+  assertEqual (Just 'a') =<< atomically (lookupLeft 2 m)
+  assertEqual Nothing =<< atomically (focusLeft Focus.lookup 1 m)
+  assertEqual (Just 'a') =<< atomically (focusLeft Focus.lookup 2 m)
+  atomically $ focusLeft (Focus.insert 'a') 3 m
+  assertEqual 1 =<< atomically (size m)
+  assertEqual Nothing =<< atomically (lookupLeft 1 m)
+  assertEqual Nothing =<< atomically (lookupLeft 2 m)
+  assertEqual (Just 'a') =<< atomically (lookupLeft 3 m)
+
