diff --git a/Lib/idlelib/idle_test/test_stackviewer.py b/Lib/idlelib/idle_test/test_stackviewer.py
index 3b8486a..98f53f9 100644
--- a/Lib/idlelib/idle_test/test_stackviewer.py
+++ b/Lib/idlelib/idle_test/test_stackviewer.py
@@ -1,21 +1,34 @@
-"Test stackviewer, coverage 19%."
+"Test stackviewer, coverage 63%."
 
 from idlelib import stackviewer
 import unittest
 from test.support import requires
 from tkinter import Tk
 
+from idlelib.tree import TreeNode, ScrolledCanvas
+import sys
 
-class Test(unittest.TestCase):
+
+class StackBrowserTest(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
+        svs = stackviewer.sys
+        try:
+            abc
+        except NameError:
+            svs.last_type, svs.last_value, svs.last_traceback = (
+                sys.exc_info())
+
         requires('gui')
         cls.root = Tk()
         cls.root.withdraw()
 
     @classmethod
     def tearDownClass(cls):
+        svs = stackviewer.sys
+        del svs.last_traceback, svs.last_type, svs.last_value
+
         cls.root.update_idletasks()
 ##        for id in cls.root.tk.call('after', 'info'):
 ##            cls.root.after_cancel(id)  # Need for EditorWindow.
@@ -23,13 +36,11 @@
         del cls.root
 
     def test_init(self):
-        try:
-            zzz
-        except NameError as e:
-            ex = e
-# Test runners suppress setting of sys.last_xyx, which stackviewer needs.
-# Revise stackviewer so following works.
-#        stackviewer.StackBrowser(self.root, ex=exc)
+        sb = stackviewer.StackBrowser(self.root)
+        isi = self.assertIsInstance
+        isi(stackviewer.sc, ScrolledCanvas)
+        isi(stackviewer.item, stackviewer.StackTreeItem)
+        isi(stackviewer.node, TreeNode)
 
 
 if __name__ == '__main__':
diff --git a/Lib/idlelib/stackviewer.py b/Lib/idlelib/stackviewer.py
index 71cfb78..94ffb4e 100644
--- a/Lib/idlelib/stackviewer.py
+++ b/Lib/idlelib/stackviewer.py
@@ -8,6 +8,7 @@
 from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas
 
 def StackBrowser(root, flist=None, tb=None, top=None):
+    global sc, item, node  # For testing.
     if top is None:
         top = tk.Toplevel(root)
     sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
@@ -134,7 +135,6 @@
         intentional_name_error
     except NameError:
         exc_type, exc_value, exc_tb = sys.exc_info()
-
     # inject stack trace to sys
     sys.last_type = exc_type
     sys.last_value = exc_value
@@ -149,7 +149,7 @@
 
 if __name__ == '__main__':
     from unittest import main
-    main('idlelib.idle_test.test_stackviewer', verbosity=2)
+    main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False)
 
     from idlelib.idle_test.htest import run
     run(_stack_viewer)
