I've cannibalised discussion from the "Bugs" thread. I hope it is a service to the community to reopen this. The poll on RubyGarden votes "make 'em all local", closely followed by "leave it unchanged". Yet the "problem" keeps coming up, and the most sensible solution (in my mind) is not represented in the poll. I think it makes sense to explicitly mark *external* variables, as block-local variables (parameters, in fact) would be the norm. Thus, if 'a' and 'c' are regular parameters and 'b' is an external variable, then one could write collection.each do |a,:b,c| ... end or collection.each do |a,b,c| external b ... end I'm not sure which of the above I prefer. One should optimise for the common case. I'd like to put a question to the audience :) Does anyone actually have a need to use non-local block parameters? Ever? Apologies if this can of worms is better left buried. Cheers, Gavin -- Gavin Sinclair Software Engineer Sydney, Australia Soyabean Software Pty Ltd