Issue #18441: Correct previous patch, which hg committed before I wanted it to.
diff --git a/Lib/test/test_idle.py b/Lib/test/test_idle.py
index 540f7d2..fc05be1 100644
--- a/Lib/test/test_idle.py
+++ b/Lib/test/test_idle.py
@@ -1,4 +1,5 @@
 # Skip test if _thread or _tkinter wasn't built or idlelib was deleted.
+from test import test_support as support
 from test.test_support import import_module, use_resources
 import_module('threading')  # imported by idlelib.PyShell, imports _thread
 tk = import_module('Tkinter')
@@ -10,11 +11,9 @@
     try:
         root = tk.Tk()
         root.destroy()
-    except TclError:
-        while True:
-            use_resources.delete('gui')
-            if 'gui' not in use_resources:
-                break
+    except tk.TclError:
+        while 'gui' in use_resources:
+            use_resources.remove('gui')
 
 # Without test_main present, regrtest.runtest_inner (line1219) calls
 # unittest.TestLoader().loadTestsFromModule(this_module) which calls
@@ -25,7 +24,6 @@
     # Until unittest supports resources, we emulate regrtest's -ugui
     # so loaded tests run the same as if textually present here.
     # If any Idle test ever needs another resource, add it to the list.
-    from test import support
     support.use_resources = ['gui']  # use_resources is initially None
     import unittest
     unittest.main(verbosity=2, exit=False)