So I'm wondering, is this a bug, or not a bug, or a type-o in the docs?

According to http://www.ruby-doc.org/core/classes/Array.html
array*int  "[R]eturns a new array built by concatenating the int
copies of self."
Copies should be brand new independent copies, right?

foo=[[nil,nil,nil]]returns a new array built by concatenating the int
copies of self.
foo*=3
#Foo is now.
#[[nil,nil,nil],
# [nil,nil,nil],
# [nil,nil,nil]]

foo[1][1]=12
#Foo is now
#[[nil,12,nil],
# [nil,12,nil],
# [nil,12,nil]]

#But I would have expected it to be
#[[nil,nil,nil],
# [nil,12,nil],
# [nil,nil,nil]]