>>>>> "B" == Brian Candler <B.Candler / pobox.com> writes: B> Essentially, we have four different behaviours now No, there are only 2 cases. No need to give complex explanation for something which is simple. What you call a "block parameter" don't exist, this is is *just* an assigned variable : understand this and you'll understand the rules used by ruby actually. Guy Decoux