 
     // MARK: Callbacks
     public func onComplete(executionContext: ExecutionContext, complete: Try<T> -> Void) {
-        self.futureQueue.sync {
-            let futureComplete : InFuture = { future in
-                future.onComplete(executionContext, complete: complete)
-            }
-            self.saveCompletes.append(futureComplete)
-            for future in self.futures {
-                futureComplete(future)
-            }
+        let futureComplete : InFuture = { future in
+            future.onComplete(executionContext, complete: complete)
+        }
+        self.saveCompletes.append(futureComplete)
+        for future in self.futures {
+            futureComplete(future)
         }
     }
     

    private typealias InFuture = Future<T> -> Void

    private var saveCompletes = [InFuture]()
    private let futureQueue = Queue.simpleFutureStreams
    private var capacity: Int?
    
    internal let defaultExecutionContext: ExecutionContext  = QueueContext.main

    internal func complete(result: Try<T>) {
        let future = Future<T>()
        future.complete(result)
        self.addFuture(future)
        for complete in self.saveCompletes {
            complete(future)
        }
    }

