     describe("Future#timeout") {
       it("rejects the future when timeout triggers") {
         var failedCalled = false
-        
         let future = Future<Void>()
-        future.fail { _ in
-          failedCalled = true
-        }.timeout(0.5)
-        
-        future.timeoutTimer?.fire()
-        
-        waitUntil { done in done() }
-        
+
+        futures_wait {
+          let futures = [
+            future.fail { _ in
+              failedCalled = true
+            }.timeout(0.5)
+          ]
+
+          future.timeoutTimer?.fire()
+
+          return futures
+        }
+
         expect(failedCalled) == true
       }
     }

      }
      
      it("properly calls finally when future is resolved") {
        future.then {
          thenCalled = true
        }.fail { _ in
          failedCalled = true
        }.finally {
          finallyCalled = true
        }
        
        future.resolve()
        
        waitUntil { done in done() }

        expect(thenCalled) == true
        expect(failedCalled) == false

        }
        
        var result: Int!
        let future = futures.any()

        futures_wait {
          [future.wrap()]
        }

        waitUntil { done in
          futures.any().then {
            result = $0
