Try messaging the main thread with GCD rather than NSOperationQueue to see if that's gumming up the works