dblack wrote: .... > > Commit the fix, please. > > Using the new version: > > $ ./ruby -v > ruby 1.8.0 (2003-10-06) [i686-linux] > $ ./ruby -e 'p ["a"].inject("start") {|x,y| "b"}' > "b" > $ ./ruby -e 'p ["a"].inject("start") {|x,y| break "b"}' > "start" > > I'm still not understanding why these should be different, or how > "start" gets into the first one (the first block) at all. Hm, maybe the fix introduced the following behavior ? (ruby -v == 1.8.0 (2003-10-08) [i386-mswin32]) --- module Enumerable def test_break while true while true each {|x| yield x } end end puts "not reached" ensure puts "reached" end end (1..5).test_break { break "bla" } --- results in --- reached --- /Christoph