Added a test that provokes the hypothesized (in my last checkin comment)
debug-build failure when an instance of a new-style class is resurrected
by a __del__ method -- we simply never had any code that tried this.

This is already fixed in 2.3 CVS.  In 2.2.1, it blows up via

    Fatal Python error: GC object already in linked list

I'll fix it in 2.2.1 CVS next.
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index ea67c4e..4069403 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -3183,6 +3183,25 @@
     a.__setitem__(slice(0, 2, 1), [2,3])
     vereq(a, [2,3,1])
 
+def subtype_resurrection():
+    if verbose:
+        print "Testing resurrection of new-style instance."
+
+    class C(object):
+        container = []
+
+        def __del__(self):
+            # resurrect the instance
+            C.container.append(self)
+
+    c = C()
+    c.attr = 42
+    # The only interesting thing here is whether this blows up in a
+    # debug build, due to flawed GC tracking logic in typeobject.c's
+    # call_finalizer() (a 2.2.1 bug).
+    del c
+    del C.container[-1]  # resurrect it again for the heck of it
+    vereq(C.container[-1].attr, 42)
 
 def do_this_first():
     if verbose:
@@ -3274,6 +3293,7 @@
     string_exceptions()
     copy_setstate()
     slices()
+    subtype_resurrection()
     if verbose: print "All OK"
 
 if __name__ == "__main__":