diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index dd10334..c496d1d 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1448,9 +1448,6 @@
 text = TextDoc()
 html = HTMLDoc()
 
-class _OldStyleClass: pass
-_OLD_INSTANCE_TYPE = type(_OldStyleClass())
-
 def resolve(thing, forceload=0):
     """Given an object or a path to an object, get the object and its name."""
     if isinstance(thing, str):
@@ -1471,10 +1468,6 @@
             desc += ' in ' + name[:name.rfind('.')]
         elif module and module is not object:
             desc += ' in module ' + module.__name__
-        if type(object) is _OLD_INSTANCE_TYPE:
-            # If the passed object is an instance of an old-style class,
-            # document its available methods instead of its value.
-            object = object.__class__
         elif not (inspect.ismodule(object) or
                   inspect.isclass(object) or
                   inspect.isroutine(object) or
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index 7c9d4aa..a03daa9 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -44,7 +44,7 @@
         if key in ignore: return
         if key not in obj:
             print >>sys.stderr, "***",key
-        self.failUnless(key) in obj
+        self.failUnless(key in obj)
 
     def assertEqualsOrIgnored(self, a, b, ignore):
         ''' succeed iff a == b or a in ignore or b in ignore '''
