diff --git a/ReactiveObjC/NSObject+RACSelectorSignal.m b/ReactiveObjC/NSObject+RACSelectorSignal.m index ed809e2ef..5bacfb9f3 100644 --- a/ReactiveObjC/NSObject+RACSelectorSignal.m +++ b/ReactiveObjC/NSObject+RACSelectorSignal.m @@ -51,6 +51,15 @@ static BOOL RACForwardInvocation(id self, NSInvocation *invocation) { if (subject == nil) return respondsToAlias; [subject sendNext:invocation.rac_argumentsTuple]; + + NSString *className = NSStringFromClass(class); + NSString *selName = NSStringFromSelector(invocation.selector); + Class statedClass = [invocation.target class]; + if (statedClass != class && ![className containsString:RACSubclassSuffix] + && ![selName hasPrefix:RACSignalForSelectorAliasPrefix]) { + return NO; + } + return YES; }