Index: src/runtime/class.m ================================================================== --- src/runtime/class.m +++ src/runtime/class.m @@ -341,10 +341,17 @@ return; if (class->superclass) initializeClass(class->superclass); + /* + * Avoid double-initialization: One of the superclasses' +[initialize] + * might have called this class and hence it already got initialized. + */ + if (class->info & OBJC_CLASS_INFO_INITIALIZED) + return; + class->info |= OBJC_CLASS_INFO_DTABLE; class->isa->info |= OBJC_CLASS_INFO_DTABLE; objc_update_dtable(class); objc_update_dtable(class->isa);