     d[cancel2].cancel(String(cancel2))
 
     let c = combine(d)
-    let x = expectation(description: "result")
-    c.notify { _ in x.fulfill() }
+
+    waitForExpectations(timeout: 1.0)
 
     XCTAssert(c.value == nil)
     XCTAssert(c.error as? DeferredError == DeferredError.canceled(String(min(cancel1,cancel2))))
-
-    waitForExpectations(timeout: 1.0)
   }
 
   func testCombine2()

      i -> Deferred<Int> in
      let e = expectation(description: String(describing: i))
      return Deferred {
        usleep((nzRandom() % 10 + 2) * 10_000)
        e.fulfill()
        return i
      }

    d[cancel2].cancel(String(cancel2))

    let c = reduce(d, initial: 0, combine: { a, b in return a+b })

    waitForExpectations(timeout: 1.0)

    XCTAssert(c.value == nil)
    XCTAssert(c.error as? DeferredError == DeferredError.canceled(String(min(cancel1, cancel2))))
  }

  func testCombineArray1()
