Issue #8298 has been updated by Student (Nathan Zook). I think that perhaps I was too brief. My complaint is only that N precedes M (and C) in the ancestor list. The other matters are clear. module M ; def foo ; M ; end ; end module N ; def foo ; N ; end ; end class C ; include M ; end module M ; include N ; end c = C.new c.extend M c.foo => N class D ; include M ; end D.new.foo => M ---------------------------------------- Bug #8298: Module include inconsistency https://bugs.ruby-lang.org/issues/8298#change-39048 Author: Student (Nathan Zook) Status: Rejected Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: 1.8, 1.9, 2.0 Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN It has been suggested that I report this as a violation of the object model: module M ; end module N ; end class C ; include M ; end module M ; include N ; end c = C.new c.extend M d = class << c ; self ; end d.ancestors =>[N, C, M, Object, Kernel] This has been this way for a while... -- http://bugs.ruby-lang.org/