diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py
index 45747a6..7b01178 100644
--- a/Lib/_abcoll.py
+++ b/Lib/_abcoll.py
@@ -320,10 +320,9 @@
             self.add(value)
         return self
 
-    def __iand__(self, c: Container):
-        for value in self:
-            if value not in c:
-                self.discard(value)
+    def __iand__(self, it: Iterable):
+        for value in (self - it):
+            self.discard(value)
         return self
 
     def __ixor__(self, it: Iterable):
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 3d00973..e8d72ee 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -327,6 +327,25 @@
             B.register(C)
             self.failUnless(issubclass(C, B))
 
+class WithSet(MutableSet):
+
+    def __init__(self, it=()):
+        self.data = set(it)
+
+    def __len__(self):
+        return len(self.data)
+
+    def __iter__(self):
+        return iter(self.data)
+
+    def __contains__(self, item):
+        return item in self.data
+
+    def add(self, item):
+        self.data.add(item)
+
+    def discard(self, item):
+        self.data.discard(item)
 
 class TestCollectionABCs(ABCTestCase):
 
@@ -363,6 +382,12 @@
         self.validate_abstract_methods(MutableSet, '__contains__', '__iter__', '__len__',
             'add', 'discard')
 
+    def test_issue_5647(self):
+        # MutableSet.__iand__ mutated the set during iteration
+        s = WithSet('abcd')
+        s &= WithSet('cdef')            # This used to fail
+        self.assertEqual(set(s), set('cd'))
+
     def test_issue_4920(self):
         # MutableSet.pop() method did not work
         class MySet(collections.MutableSet):
diff --git a/Misc/NEWS b/Misc/NEWS
index 2ecd85b..f003c0a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -55,6 +55,8 @@
 Library
 -------
 
+- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
+
 - Issue #5624: Fix the _winreg module name still used in several modules.
 
 - Issue #5628: Fix io.TextIOWrapper.read() with a unreadable buffer.
