diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 660d5de..ae421b1 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -580,8 +580,8 @@
         note = ''
         skipdocs = 0
         if inspect.ismethod(object):
+            imclass = object.im_class
             if cl:
-                imclass = object.im_class
                 if imclass is not cl:
                     url = '%s.html#%s-%s' % (
                         imclass.__module__, imclass.__name__, name)
@@ -589,9 +589,10 @@
                         url, classname(imclass, mod))
                     skipdocs = 1
             else:
-                note = (object.im_self and
-                        ' method of %s instance' + object.im_self.__class__ or
-                        ' unbound %s method' % object.im_class.__name__)
+                inst = object.im_self
+                note = (inst and
+                    ' method of %s instance' % classname(inst.__class__, mod) or
+                    ' unbound %s method' % classname(imclass, mod))
             object = object.im_func
 
         if name == realname:
@@ -847,9 +848,10 @@
                     note = ' from ' + classname(imclass, mod)
                     skipdocs = 1
             else:
-                note = (object.im_self and
-                        ' method of %s instance' + object.im_self.__class__ or
-                        ' unbound %s method' % classname(imclass, mod))
+                inst = object.im_self
+                note = (inst and
+                    ' method of %s instance' % classname(inst.__class__, mod) or
+                    ' unbound %s method' % classname(imclass, mod))
             object = object.im_func
 
         if name == realname:
@@ -1699,7 +1701,7 @@
                 self.scanner.quit = 1
             self.scanner = ModuleScanner()
             threading.Thread(target=self.scanner.run,
-                             args=(key, self.update, self.done)).start()
+                             args=(self.update, key, self.done)).start()
 
         def update(self, path, modname, desc):
             if modname[-9:] == '.__init__':
