This doesn't seem right to me:

irb(main):001:0> module X
irb(main):002:1>   module A; end
irb(main):003:1> end
=> nil
irb(main):004:0> class Q
irb(main):005:1>   include X
irb(main):006:1>   p A
irb(main):007:1>   class Y
irb(main):008:2>     class Z < A
irb(main):009:3>     end
irb(main):010:2>   end
irb(main):011:1> end
X::A
NameError: uninitialized constant Q::Y::A
        from (irb):8

If I recall correctly, 1.9 has some changes to constant lookup rules.
Is the above fixed in 1.9?

Thanks,
T.