>>>>> "m" == matt <mhm26 / drexel.edu> writes: m> - then I have to worry about how blocks are used in each one if m> special_magic uses break - what if the list was made dynamically from m> reflection, etc? Granted, I generally don't use break - especially in m> lambdas - but its still something I didn't expect. well, the problem is that you have written something strange. Your first example was def meow yield end meow do puts "in block" break puts "leaving block" end Your second example was p = proc do puts "in proc" break puts "leaving proc" end def meow(block) block[] end meow(p) Guy Decoux