This seems to be a change in 1.9 that's breaking some code (it was 
reported by a user of the bit-struct library). Here's the test case:

class C; def self.foo; end; end
class D<C
   p superclass
   p defined?(superclass.foo)
   p defined?(superclass.fooz)
end

$ ruby -v bug.rb
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux]
C
"method"
nil
$ ruby19 -v bug.rb
ruby 1.9.0 (2007-12-25 revision 14709) [i686-linux]
C
true
true
$ ruby19svn -v bug.rb
ruby 1.9.0 (2008-03-21 revision 15824) [i686-linux]
C
true
true

I don't see anything quite relevant in 
http://eigenclass.org/hiki/Changes+in+Ruby+1.9.

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407