Issue #14205: Fix test_dict.test_mutating_lookup()
diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py
index 15db51d..387dd32 100644
--- a/Lib/test/test_dict.py
+++ b/Lib/test/test_dict.py
@@ -392,20 +392,27 @@
         class NastyKey:
             mutate_dict = None
 
+            def __init__(self, value):
+                self.value = value
+
             def __hash__(self):
                 # hash collision!
                 return 1
 
             def __eq__(self, other):
-                if self.mutate_dict:
-                    self.mutate_dict[self] = 1
-                return self == other
+                if NastyKey.mutate_dict:
+                    mydict, key = NastyKey.mutate_dict
+                    NastyKey.mutate_dict = None
+                    del mydict[key]
+                return self.value == other.value
 
-        d = {}
-        d[NastyKey()] = 0
-        NastyKey.mutate_dict = d
-        with self.assertRaises(RuntimeError):
-            d[NastyKey()] = None
+        key1 = NastyKey(1)
+        key2 = NastyKey(2)
+        d = {key1: 1}
+        NastyKey.mutate_dict = (d, key1)
+        with self.assertRaisesRegex(RuntimeError,
+                                    'dictionary changed size during lookup'):
+            d[key2] = 2
 
     def test_repr(self):
         d = {}