@@ -97,12 +97,20 @@ if (i >= size) for (i = 0; i < size && data[i].key != nil; i++); if (i >= size) @throw [OFOutOfRangeException newWithClass: isa]; - data[i].key = [key copy]; - data[i].object = [obj retain]; + key = [key copy]; + @try { + [obj retain]; + } @catch (OFException *e) { + [key release]; + @throw e; + } + + data[i].key = key; + data[i].object = obj; data[i].hash = hash; count++; return self; }