Hello, following code shows the difference in handling Integers and class Instances as return values of operator [] : # ----------------------- h=[] #also: h = Hash.new h[5] = 3; e = h[5]; e = 7 print e, h[5] class C attr_accessor :v def initialize @v = 0 end end h[8] = C.new ; c = h[8] ; c.v = 7 print c.v, h[8].v # ------- Output -------- 7377 I had expected 7777 here. Description of [](retranslated from german pickaxe): "recalls aValueObject, which is stored for aKeyObject" I don't find further explanation. Reference, Value, Const? I think the result is because 3 is an Integer and 3 = 7 don't work. Further: #-------------------- h[9] = C.new ; c = h[9] c = C.new ; c.v = 7 print c.v,h[9].v # -------- produces --- 70 I see some sort of rule there, but I dont think this is "POLS". Is there a rule somewhere? (chapter of pickaxe?) I could look into the source code, but this is no explanation for the reason why its done this way. Michael B.