 
         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() {
            XCTAssertEqual(Author.allAuthorsInContext(backgroundContext).count, 1,
                "Object should be delete from main queue but still living in background.")
        }
    }
}

        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 {
