Can module2 include module2 and add features to a class from module1? I tried: module M1 class A; def f; "f"; end; end class B; def f; "f"; end; end end module M2 include M1 class A; def g; "g"; end; end #don't want to subclass end M2::A.new.g # "g", as expected M2::A.new.f # undefined method M2::B::new.f # "f" as expected So defining class A in M2 does not 're-open" the included class, but creates a new class. M1::B, however, comes through fine in M2. Is it possible (1) for module M2 to locally modify the definition of M1::A ? (2) for this modified class to be accessible as M2::A ? Thanks ...