If Ruby properly handled tail-recursion, then the "accumulator passing" style work for any number: def fib n fib_helper( n, 1, 1) end def fib_helper n, next_val, val n < 1 ? val : fib_helper( n-1, next_val + val, next_val) end the above code (in accumulator-passing style) only works through about n=1300 for me. Justin