self.location.Append(self.current)
 
         self.SetSizer(sizer)
-        self.SetAutoLayout(true)
+        self.SetAutoLayout(True)
         EVT_SIZE(self, self.OnSize)
 
+        EVT_WINDOW_DESTROY(self, self.OnDestroy)
+
+
+    def ShutdownDemo(self):
+        # put the frame title back
+        if self.frame:
+            self.frame.SetTitle(self.titleBase)
 
-    def OnSize(self, evt):
-        self.Layout()
 
-    def __del__(self):
+    def OnDestroy(self, evt):
         if self.ie:
             self.ie.Cleanup()
             self.ie = None
+            self.frame = None
+
+
+    def OnSize(self, evt):
+        self.Layout()
+
 
     def OnLocationSelect(self, evt):
         url = self.location.GetStringSelection()
             self.tp = TestPanel(self, sys.stdout, self)
             EVT_CLOSE(self, self.OnCloseWindow)
 
-        def OnCloseWindow(self, event):
-            self.tp.ie.Cleanup()
+        def OnCloseWindow(self, evt):
+            self.tp.Destroy()
             self.Destroy()
 
-
     app = wxPySimpleApp()
     frame = TestFrame()
-    frame.Show(true)
+    frame.Show(True)
     app.MainLoop()