 
         let author = Author.newAuthorInContext(mainContext)
         XCTAssertTrue(mainContext.saveContextAndWait(nil))
+        let authorID = author.objectID
 
         // Update Test
 
         backgroundContext.performBlockAndWait {
-            if let author = Author.allAuthorsInContext(backgroundContext).first {
+            if let author = backgroundContext.objectWithID(authorID) as? Author {
                 author.firstName = "Joe"
             } else {
                 XCTFail()

        XCTAssertTrue(mainContext.saveContextAndWait(nil))

        backgroundContext.performBlockAndWait() {
            if let author = Author.allAuthorsInContext(backgroundContext).first, lastName = author.lastName {
                XCTAssertEqual(lastName, "Blah", "Last name should have been updated here")
            } else {
                XCTFail()

        XCTAssertTrue(mainContext.saveContextAndWait(nil))

        backgroundContext.performBlockAndWait() {
            if let author = backgroundContext.objectWithID(authorID) as? Author {
                XCTAssertNil(author.lastName,
                    "Last name shouldn't have been propegated from main queue")
            } else {
