- Don't crash in the case where a superclass is a string instead of a
pyclbr.Class object; this can happen when the superclass is
unrecognizable (to pyclbr), e.g. when module renaming is used.

- Show a watch cursor when calling pyclbr (since it may take a while
recursively parsing imported modules!).
diff --git a/Tools/idle/PathBrowser.py b/Tools/idle/PathBrowser.py
index 06c9ff7..d8f5b55 100644
--- a/Tools/idle/PathBrowser.py
+++ b/Tools/idle/PathBrowser.py
@@ -78,7 +78,12 @@
             self.top.bell()
             return []
         try:
-            dict = pyclbr.readmodule(name, [dir] + sys.path)
+            self.top.configure(cursor="watch")
+            self.top.update_idletasks()
+            try:
+                dict = pyclbr.readmodule(name, [dir] + sys.path)
+            finally:
+                self.top.configure(cursor="")
         except ImportError, msg:
             tkMessageBox.showerror("Import error", str(msg), parent=root)
             return []
@@ -90,9 +95,12 @@
                 if cl.super:
                     supers = []
                     for sup in cl.super:
-                        sname = sup.name
-                        if sup.module != cl.module:
-                            sname = "%s.%s" % (sup.module, sname)
+                        if type(sup) is type(''):
+                            sname = sup
+                        else:
+                            sname = sup.name
+                            if sup.module != cl.module:
+                                sname = "%s.%s" % (sup.module, sname)
                         supers.append(sname)
                     s = s + "(%s)" % string.join(supers, ", ")
                 items.append((cl.lineno, s))