Issue #20006: Fix sporadic failures in test_weakset.
diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py
index 6b34a8d..d735d9c 100644
--- a/Lib/test/test_weakset.py
+++ b/Lib/test/test_weakset.py
@@ -473,9 +473,14 @@
         def testcontext():
             try:
                 it = iter(s)
-                next(it)
+                # Start iterator
+                yielded = ustr(str(next(it)))
                 # Schedule an item for removal and recreate it
                 u = ustr(str(items.pop()))
+                if yielded == u:
+                    # The iterator still has a reference to the removed item,
+                    # advance it (issue #20006).
+                    next(it)
                 gc.collect()      # just in case
                 yield u
             finally: