From: Niklas Frykholm Date: 2002-01-13T00:09:36+09:00 Subject: Re: Changes to block behavior in ruby 1.6.6 >> Is this an intended change of behavior or a bug in ruby-166? [Yukihiro Matsumoto] > It was intended change. It was a bug since 1.6.3 til 1.6.5. So blocks have to be passed explicitly to sub-methods, like this: def a; yield 1; end def b(&p); a(&p); end b {|x| puts x} Yes, when I think of it that makes more sense. Otherwise, there would be an implicit block-pass to every method called in b, which would cause strange behavior if, for example, b called a method that behaves differently whether it is given a block or not, such as File.open. // Niklas