diff --git a/refined-containers.cabal b/refined-containers.cabal
--- a/refined-containers.cabal
+++ b/refined-containers.cabal
@@ -23,7 +23,7 @@
 license-file: LICENSE
 author: mniip@typeable.io
 maintainer: mniip@typeable.io
-version: 0.1.0.0
+version: 0.1.0.1
 build-type: Simple
 
 tested-with:
diff --git a/src/Data/IntMap/Common/Refined.hs b/src/Data/IntMap/Common/Refined.hs
--- a/src/Data/IntMap/Common/Refined.hs
+++ b/src/Data/IntMap/Common/Refined.hs
@@ -241,8 +241,13 @@
   -> IntMap s c
 zipWithKey f (IntMap m1) (IntMap m2) = IntMap
   $ IntMap.mergeWithKey (\k x y -> Just $ f (unsafeKey k) x y)
-    (error "zipWithKey: bug: Data.IntMap.Refined has been subverted")
-    (error "zipWithKey: bug: Data.IntMap.Refined has been subverted")
+    (\m -> if IntMap.null m
+      then IntMap.empty
+      else error "zipWithKey: bug: Data.IntMap.Refined has been subverted")
+    (\m -> if IntMap.null m
+      then IntMap.empty
+      else error "zipWithKey: bug: Data.IntMap.Refined has been subverted")
+    --  ^ Work around https://github.com/haskell/containers/issues/979
     m1
     m2
 
diff --git a/src/Data/IntMap/Strict/Refined.hs b/src/Data/IntMap/Strict/Refined.hs
--- a/src/Data/IntMap/Strict/Refined.hs
+++ b/src/Data/IntMap/Strict/Refined.hs
@@ -236,8 +236,15 @@
   -> IntMap s c
 zipWithKey f (IntMap m1) (IntMap m2) = IntMap
   $ IntMap.mergeWithKey (\k x y -> Just $ f (unsafeKey k) x y)
-    (error "zipWithKey: bug: Data.IntMap.Strict.Refined has been subverted")
-    (error "zipWithKey: bug: Data.IntMap.Strict.Refined has been subverted")
+    (\m -> if IntMap.null m
+      then IntMap.empty
+      else
+        error "zipWithKey: bug: Data.IntMap.Strict.Refined has been subverted")
+    (\m -> if IntMap.null m
+      then IntMap.empty
+      else
+        error "zipWithKey: bug: Data.IntMap.Strict.Refined has been subverted")
+    --  ^ Work around https://github.com/haskell/containers/issues/979
     m1
     m2
 
diff --git a/src/Data/Map/Common/Refined.hs b/src/Data/Map/Common/Refined.hs
--- a/src/Data/Map/Common/Refined.hs
+++ b/src/Data/Map/Common/Refined.hs
@@ -241,8 +241,13 @@
   => (Key s k -> a -> b -> c) -> Map s k a -> Map s k b -> Map s k c
 zipWithKey f (Map m1) (Map m2) = Map
   $ Map.mergeWithKey (\k x y -> Just $ f (unsafeKey k) x y)
-    (error "zipWithKey: bug: Data.Map.Refined has been subverted")
-    (error "zipWithKey: bug: Data.Map.Refined has been subverted")
+    (\m -> if Map.null m
+      then Map.empty
+      else error "zipWithKey: bug: Data.Map.Refined has been subverted")
+    (\m -> if Map.null m
+      then Map.empty
+      else error "zipWithKey: bug: Data.Map.Refined has been subverted")
+    --  ^ Work around https://github.com/haskell/containers/issues/979
     m1
     m2
 
diff --git a/src/Data/Map/Strict/Refined.hs b/src/Data/Map/Strict/Refined.hs
--- a/src/Data/Map/Strict/Refined.hs
+++ b/src/Data/Map/Strict/Refined.hs
@@ -244,8 +244,13 @@
   => (Key s k -> a -> b -> c) -> Map s k a -> Map s k b -> Map s k c
 zipWithKey f (Map m1) (Map m2) = Map
   $ Map.mergeWithKey (\k x y -> Just $ f (unsafeKey k) x y)
-    (error "zipWithKey: bug: Data.Map.Strict.Refined has been subverted")
-    (error "zipWithKey: bug: Data.Map.Strict.Refined has been subverted")
+    (\m -> if Map.null m
+      then Map.empty
+      else error "zipWithKey: bug: Data.Map.Strict.Refined has been subverted")
+    (\m -> if Map.null m
+      then Map.empty
+      else error "zipWithKey: bug: Data.Map.Strict.Refined has been subverted")
+    --  ^ Work around https://github.com/haskell/containers/issues/979
     m1
     m2
 
