@@ -600,16 +600,22 @@ #ifdef OF_HAVE_BLOCKS - (void)enumerateKeysAndObjectsUsingBlock: (of_dictionary_enumeration_block_t)block { + OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; size_t i; BOOL stop = NO; - for (i = 0; i < size && !stop; i++) - if (data[i] != NULL && data[i] != DELETED) + for (i = 0; i < size && !stop; i++) { + if (data[i] != NULL && data[i] != DELETED) { block(data[i]->key, data[i]->object, &stop); + [pool releaseObjects]; + } + } + + [pool release]; } - (OFDictionary*)mappedDictionaryUsingBlock: (of_dictionary_map_block_t)block { OFMutableDictionary *dict = [OFMutableDictionary dictionary];