Instead of removing the entire user dictionary, why not use -[NSDictionary mergedInto:] from NSDictionary+Merge?