Hello Michael, Thursday, February 20, 2003, 3:58:17 PM, you wrote: MB> h[5] = 3; e = h[5]; e = 7 MB> h[8] = C.new ; c = h[8] ; c.v = 7 these lines are very different. vars in ruby holds pointers to objects. array elements and class members also holds pointers. "=" operaion sets variable to point to object evaluated on the right "c=h[8]" sets c and h[8] to point to the same object. "c.v=7" modifies this object "e=h[5]" sets e and h[5] to point to the same object. but "e=7" changes e to point to another object so after all above you will have 3 objects pointed by 4 variables/array elements (h[5],e,h[8],c) -- Best regards, Bulat mailto:bulatz / integ.ru