Issue #2065 has been updated by Simon Chiang. Actually I think that gets to the heart of the matter. It's not sufficient to cache the ancestors because I want to iterate the most current class hierarchy. Doing so allows added features to really be method-like in their inheritance. I figure somewhere in core the class hierarchy must already be iterated to generate the ancestors array. I'm envisioning a hook that lets you access that iteration and most likely break out of it at an early point in the ancestry. As a side note, in my use case I offer caching like you suggest as an option to improve performance. However it's exactly as you point out... hard to invalidate at the right time. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2065 ---------------------------------------- http://redmine.ruby-lang.org