--- typeobject.c.orig 2004-09-24 17:18:51.886908912 +0100 +++ typeobject.c 2004-09-24 17:18:39.092853904 +0100 @@ -5197,7 +5197,10 @@ do { descr = _PyType_Lookup(type, p->name_strobj); if (descr == NULL) + { + specific = *ptr; continue; + } if (descr->ob_type == &PyWrapperDescr_Type) { void **tptr = resolve_slotdups(type, p->name_strobj); if (tptr == NULL || tptr == ptr)