Index: src/OFExceptions.m ================================================================== --- src/OFExceptions.m +++ src/OFExceptions.m @@ -340,11 +340,11 @@ { self = [super initWithClass: class_]; path = [path_ retain]; mode = [mode_ retain]; - err = GET_ERR; + err = GET_ERR; return self; } - (void)dealloc @@ -560,13 +560,13 @@ node: (OFString*)node_ service: (OFString*)service_ { self = [super initWithClass: class_]; - node = [node_ retain]; + node = [node_ retain]; service = [service_ retain]; - err = GET_AT_ERR; + err = GET_AT_ERR; return self; } - (void)dealloc Index: src/OFMutableDictionary.m ================================================================== --- src/OFMutableDictionary.m +++ src/OFMutableDictionary.m @@ -36,12 +36,13 @@ sizeof(of_dictionary_list_object_t)]; for (iter = (of_dictionary_list_object_t*)[data[hash] first]; iter != NULL; iter = iter->next) { if ([iter->key isEqual: key]) { + [obj retain]; [iter->object release]; - iter->object = [obj retain]; + iter->object = obj; return self; } } Index: src/OFXMLParser.m ================================================================== --- src/OFXMLParser.m +++ src/OFXMLParser.m @@ -107,12 +107,13 @@ return [[delegate retain] autorelease]; } - setDelegate: (OFObject *)delegate_ { + [delegate_ retain]; [delegate release]; - delegate = [delegate_ retain]; + delegate = delegate_; return self; } - parseBuffer: (const char*)buf