Index: src/objc_properties.m ================================================================== --- src/objc_properties.m +++ src/objc_properties.m @@ -40,16 +40,24 @@ switch (copy) { case 0: *ptr = [value retain]; break; case 2: + /* + * Apple uses this to indicate that the copy + * should be mutable. Please hit them for + * abusing a poor BOOL! + */ *ptr = [value mutableCopy]; break; default: *ptr = [value copy]; } + [old release]; + + return; } } id *ptr = (id*)((char*)self + offset); id old = *ptr; @@ -57,12 +65,17 @@ switch (copy) { case 0: *ptr = [value retain]; break; case 2: + /* + * Apple uses this to indicate that the copy should be mutable. + * Please hit them for abusing a poor BOOL! + */ *ptr = [value mutableCopy]; break; default: *ptr = [value copy]; } + [old release]; }