Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py
index 942a72c..a355be9 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):