Hi, I've been playing with Ruby 1.9, and I found a case that seemed strange. def foo; yield([1, 2]); end foo { |a, *rest| p [a, rest] } # displays [1, [2]] def foo; yield([1, 2]); end foo { |a = 42, *rest| p [a, rest] } # displays [[1, 2], []] Should not both display the same thing? Is there a special reason or logic behind? Cheers, Vincent Isambart