Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -265,10 +265,14 @@ + (IMP)replaceClassMethod: (SEL)selector withClassMethodFromClass: (Class)class; { IMP newimp; + if (![class isSubclassOfClass: self]) + @throw [OFInvalidArgumentException newWithClass: self + selector: _cmd]; + #if defined(OF_OBJFW_RUNTIME) newimp = objc_get_class_method(class, selector); #elif defined(OF_APPLE_RUNTIME) newimp = method_getImplementation(class_getClassMethod(class, selector)); @@ -316,10 +320,14 @@ + (IMP)replaceInstanceMethod: (SEL)selector withInstanceMethodFromClass: (Class)class; { IMP newimp; + + if (![class isSubclassOfClass: self]) + @throw [OFInvalidArgumentException newWithClass: self + selector: _cmd]; #if defined(OF_OBJFW_RUNTIME) newimp = objc_get_instance_method(class, selector); #elif defined(OF_APPLE_RUNTIME) newimp = class_getMethodImplementation(class, selector);