Use self.__class__ to instantiate a TreeNode item recursively, to
allow subclassing.
diff --git a/Tools/idle/TreeWidget.py b/Tools/idle/TreeWidget.py
index be80a63..37bc58f 100644
--- a/Tools/idle/TreeWidget.py
+++ b/Tools/idle/TreeWidget.py
@@ -187,7 +187,7 @@
                 # _IsExpandable() was mistaken; that's allowed
                 return y+17
             for item in sublist:
-                child = TreeNode(self.canvas, self, item)
+                child = self.__class__(self.canvas, self, item)
                 self.children.append(child)
         cx = x+20
         cy = y+17