Whoops -- referenced self.top before it was set.
diff --git a/Tools/idle/StackViewer.py b/Tools/idle/StackViewer.py
index 52169a5..9b3a7c3 100644
--- a/Tools/idle/StackViewer.py
+++ b/Tools/idle/StackViewer.py
@@ -18,9 +18,9 @@
             root = top = Tk()
         else:
             top = Toplevel(root)
-        self.top.protocol("WM_DELETE_WINDOW", self.close)
         self.root = root
         self.top = top
+        self.top.protocol("WM_DELETE_WINDOW", self.close)
         top.wm_title("Stack viewer")
         # Create help label
         self.helplabel = Label(top,