diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py
index e9234af..73e668c 100644
--- a/Lib/_abcoll.py
+++ b/Lib/_abcoll.py
@@ -305,18 +305,24 @@
         return self
 
     def __ixor__(self, it):
-        if not isinstance(it, Set):
-            it = self._from_iterable(it)
-        for value in it:
-            if value in self:
-                self.discard(value)
-            else:
-                self.add(value)
+        if it is self:
+            self.clear()
+        else:
+            if not isinstance(it, Set):
+                it = self._from_iterable(it)
+            for value in it:
+                if value in self:
+                    self.discard(value)
+                else:
+                    self.add(value)
         return self
 
     def __isub__(self, it):
-        for value in it:
-            self.discard(value)
+        if it is self:
+            self.clear()
+        else:
+            for value in it:
+                self.discard(value)
         return self
 
 MutableSet.register(set)
