>>>>> "M" == Mike Bowler <mbowler / GargoyleSoftware.com> writes: M> On linux, the result is: M> -1 M> -2 M> 2 M> 3 What is your version of ruby on linux ? pigeon% cat b.rb def testArity( &proc ) puts proc.arity() end testArity() {} testArity() { |a| } testArity() { |a,b| } testArity() { |a,b,c| } pigeon% pigeon% ./ruby -v b.rb ruby 1.4.6 (2000-08-16) [i686-linux] -1 -2 2 3 pigeon% pigeon% /usr/bin/ruby -v b.rb ruby 1.6.2 (2000-12-25) [i686-linux] -1 -1 2 3 pigeon% Try : def testArity( &proc ) puts proc.arity() end testArity() {} testArity() { |a,| } testArity() { |a,b| } testArity() { |a,b,c| } Guy Decoux