This is more of a general question rather than a specific issue, but I was wondering, why is NSLock necessary to make sure SPSearchStore is thread-safe? SPSearchStore seems to use NSOperationQueue quite extensively, which has serial queues that are both more efficient than locks and achieve the same effect. Thoughts?