Try replacing this line with:
```
maybe_func = object.__getattribute__(maybe_cls, frame.f_code.co_name)
```
... which should avoid recursion issues while still using the standard MRO.