@@ -2045,19 +2045,22 @@ return new; } - (OFString *)stringByAppendingPathComponent: (OFString *)component { - void *pool = objc_autoreleasePoolPush(); - OFString *ret; - - ret = [OFString pathWithComponents: - [OFArray arrayWithObjects: self, component, nil]]; - - [ret retain]; - objc_autoreleasePoolPop(pool); - return [ret autorelease]; + if ([self hasSuffix: OF_PATH_DELIMITER_STRING]) + return [self stringByAppendingString: component]; + else { + OFMutableString *ret = [[self mutableCopy] autorelease]; + + [ret appendString: OF_PATH_DELIMITER_STRING]; + [ret appendString: component]; + + [ret makeImmutable]; + + return ret; + } } - (OFString *)stringByPrependingString: (OFString *)string { OFMutableString *new = [[string mutableCopy] autorelease];