diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index efd654e..bc69a67 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -949,7 +949,7 @@
     def __iter__(self):
         d = {}
         for mapping in reversed(self.maps):
-            d.update(mapping)                   # reuses stored hash values if possible
+            d.update(dict.fromkeys(mapping))    # reuses stored hash values if possible
         return iter(d)
 
     def __contains__(self, key):
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 6aa8979..057ec92 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -195,6 +195,22 @@
              ('e', 55), ('f', 666), ('g', 777), ('h', 88888),
              ('i', 9999), ('j', 0)])
 
+    def test_iter_not_calling_getitem_on_maps(self):
+        class DictWithGetItem(UserDict):
+            def __init__(self, *args, **kwds):
+                self.called = False
+                UserDict.__init__(self, *args, **kwds)
+            def __getitem__(self, item):
+                self.called = True
+                UserDict.__getitem__(self, item)
+
+        d = DictWithGetItem(a=1)
+        c = ChainMap(d)
+        d.called = False
+
+        set(c)  # iterate over chain map
+        self.assertFalse(d.called, '__getitem__ was called')
+
     def test_dict_coercion(self):
         d = ChainMap(dict(a=1, b=2), dict(b=20, c=30))
         self.assertEqual(dict(d), dict(a=1, b=2, c=30))
diff --git a/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst b/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst
new file mode 100644
index 0000000..8c67d74
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst
@@ -0,0 +1 @@
+ChainMap.__iter__ no longer calls __getitem__ on underlying maps
