>>>>> "D" == Daniel Schierbeck <daniel.schierbeck / gmail.com> writes: D> As you can see, Module#append_features doesn't call the .included method D> on the module, include does. Well, it's best to see it like this : moulon% cat b.rb #!/usr/bin/ruby module M def self.included(klass) puts "Included in #{klass}" end def a puts "a" end end class A include M end A.new.a moulon% moulon% ./b.rb Included in A a moulon% moulon% cat b.rb #!/usr/bin/ruby module M def self.append_features(klass) puts "Included in #{klass}" end def a puts "a" end end class A include M end A.new.a moulon% moulon% ./b.rb Included in A ./b.rb:15: undefined method `a' for #<A:0xb7d64b38> (NoMethodError) moulon% Guy Decoux