Index: src/OFArray.m ================================================================== --- src/OFArray.m +++ src/OFArray.m @@ -171,11 +171,13 @@ return *((OFObject**)[array itemAtIndex: index]); } - (id)lastObject { - return *((OFObject**)[array lastItem]); + void *last = [array lastItem]; + + return (last != NULL ? *((id*)last) : nil); } - (BOOL)isEqual: (id)obj { OFObject **objs, **objs2; Index: src/OFDataArray.m ================================================================== --- src/OFDataArray.m +++ src/OFDataArray.m @@ -80,10 +80,13 @@ return data + index * itemsize; } - (void*)lastItem { + if (data == NULL || count == 0) + return NULL; + return data + (count - 1) * itemsize; } - addItem: (void*)item {