diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py
index 40cc23e..990ff00 100644
--- a/Lib/_abcoll.py
+++ b/Lib/_abcoll.py
@@ -286,10 +286,9 @@
             self.add(value)
         return self
 
-    def __iand__(self, c):
-        for value in self:
-            if value not in c:
-                self.discard(value)
+    def __iand__(self, it):
+        for value in (self - it):
+            self.discard(value)
         return self
 
     def __ixor__(self, it):
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 9e984ba..8ffa75b 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 f5e280c..2e01d0d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -206,6 +206,8 @@
   instead of performing them in functions. Helps prevent import deadlocking in
   threads.
 
+- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
+
 - Actually make the SimpleXMLRPCServer CGI handler work.
 
 - Issue #2522: locale.format now checks its first argument to ensure it has
