>>>>> "J" == Jeremy <thinker5555 / yahoo.com> writes: J> I found out at this point, and with a bit of searching in the ruby.lang J> archives, that this winds up creating an array with nine references to the J> same object. So, now knowing that this happens, I can deal with it, but J> what I want to know is WHY it's like this. How do you create these 9 objects from one object ? and don't reply #dup because in some special case it can be inappropriated :-) 1.8 has a new syntax where Array::new accept a block to do what you want pigeon% ruby -ve 'p Array.new(2) { Object.new }' ruby 1.8.0 (2003-03-23) [i686-linux] [#<Object:0x401ac424>, #<Object:0x401ac410>] pigeon% *warning* it don't work with 1.6.8 pigeon% /usr/bin/ruby -ve 'p Array.new(2) { Object.new }' ruby 1.6.8 (2002-12-24) [i686-linux] [nil, nil] pigeon% Guy Decoux