Well, on ruby 1.9.0 (ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.0-20070709-i386-mswin32.zip) it is even more slower: >C:\bin\InstantRails\ruby1.9\bin\ruby test_flatten.rb user system total real original flatten 24.000000 0.000000 24.000000 ( 24.031000) self-made flatten 0.046000 0.000000 0.046000 ( 0.047000) true user system total real original flatten 23.719000 0.000000 23.719000 ( 23.734000) self-made flatten 0.047000 0.000000 0.047000 ( 0.047000) true >C:\bin\InstantRails\ruby1.8.6\bin\ruby test_flatten.rb user system total real original flatten 20.484000 0.000000 20.484000 ( 20.485000) self-made flatten 0.063000 0.000000 0.063000 ( 0.062000) true user system total real original flatten 20.235000 0.000000 20.235000 ( 20.266000) self-made flatten 0.062000 0.000000 0.062000 ( 0.078000) true