I'd rather we just return `nil` here if this fails.

Also, just FYI, `[NSMutableDictionary new]` is going to give you an instance with a retain count of 1 and is not auto-released.  

The expectation in ObjC is that all return values of methods have been autoreleased.  This way the caller doesn't have to worry about memory management for your return value.  To make that happen, you'd want `[[[NSMutableDictionary alloc] init] autorelease]` or the better shorthand of `[NSMutableDictionary dictionary]`.

The exception to this is methods with names that start with _create_ or _new_.  If you see that prefix, the expectation is that the return value will not already be autoreleased.