The following occurs ... irb(main):001:0> a = Array.new(3, Array.new(3)) [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]] irb(main):002:0> a[1][1] = 0 0 irb(main):003:0> a [[nil, 0, nil], [nil, 0, nil], [nil, 0, nil]] .... however I would have expected (and hoped for) ... [[nil, nil, nil], [nil, 0, nil], [nil, nil, nil]] Pragmatists _have_ warned me that "select isn't broken" :) Yours Chris Reay