       person3_inserted.firstName = "Alessandro"
       person3_inserted.lastName = "Marzoli"
 
-      try! backgroundContext.save() // it will fire [1]
+      try! backgroundContext.save() // fires [0], [4] and then [1]
     }
 
     waitForExpectations(timeout: 20)

      expectation4.fulfill()
    }

    let token5 = viewContext.addManagedObjectContextDidSaveNotificationObserver() { notification in
      // Before saving, we didn't changed anything: we don't expect nothing from this notification.
      XCTAssertEqual(notification.insertedObjects.count, 0)
      XCTAssertEqual(notification.updatedObjects.count, 0)
      XCTAssertEqual(notification.deletedObjects.count, 0)

    let viewContext = container.viewContext
    let backgroundContext = container.viewContext.newBackgroundContext(asChildContext: false)

    let person1_inserted = Person(context: viewContext)
    person1_inserted.firstName = "Edythe"
    person1_inserted.lastName = "Moreton"

    let person2_inserted = Person(context: viewContext)
    person2_inserted.firstName = "Ellis"
    person2_inserted.lastName = "Khoury"

    try viewContext.save()

    let expectation1 = expectation(description: "\(#function)\(#line)")
    let expectation2 = expectation(description: "\(#function)\(#line)")
    let expectation3 = expectation(description: "\(#function)\(#line)")
