does anyone know if this can be relied upon? cfp:~ > cat a.rb class C def singleton_class &b sc = class << self; self end b ? sc.instance_eval(&b) : sc end def extend m ancestors = [singleton_class.ancestors, self.class.ancestors].flatten.uniq super(ancestors.index(m) ? m.dup : m) end end module A def foo() 'A' end end module B def foo() 'B' end end c = C.new c.extend A p c.foo c.extend B p c.foo c.extend A p c.foo cfp:~ > ruby a.rb "A" "B" "A" ?? -a -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama