Add close() method that breaks cycles.
diff --git a/Tools/idle/Percolator.py b/Tools/idle/Percolator.py
index a5f503f..9def5f4 100644
--- a/Tools/idle/Percolator.py
+++ b/Tools/idle/Percolator.py
@@ -12,6 +12,14 @@
         self.bottom.delete = self.redir.register("delete", self.delete)
         self.filters = []
 
+    def close(self):
+        while self.top is not self.bottom:
+            self.removefilter(self.top)
+        self.top = None
+        self.bottom.setdelegate(None); self.bottom = None
+        self.redir.close(); self.redir = None
+        self.text = None
+
     def insert(self, index, chars, tags=None):
         # Could go away if inheriting from Delegator
         self.top.insert(index, chars, tags)