@erikprice step 6 (line 135) isn’t looking up the `Method` for `-methodSignatureForSelector:` it’s looking up the `Method` for the `selector` argument passed *to* `-methodSignatureForSelector:`.

The direct superclass look up is designed to prevent the recursion you describe. The arguments to objc_msgSendSuper start the look up for `-methodSignatureForSelector:` in the super class of this object’s actual class (to take dynamic subclasses into account) thus bypassing the implementation of `-methodSignatureForSelector:` on the leaf-most subclass.