                 }
             }
             
-            let skipUntilSignalName = skipUntilSignal!.name
-            let cancelError = _RKError(.CancelledBySkipUntil, "Signal=\(signalName) is cancelled by skipUntil(\(skipUntilSignalName)).")
-            
-            skipUntilSignal?.progress { (_, progressValue: U) in
+            let triggerSignalName = triggerSignal!.name
+            let cancelError = _RKError(.CancelledBySkipUntil, "Signal=\(signalName) is cancelled by skipUntil(\(triggerSignalName)).")
+            
+            triggerSignal?.progress { (_, progressValue: U) in
                 shouldSkip = false
             }.success { (value: U) -> Void in
                 shouldSkip = false

        }
    }
    
    public func skipUntil<U>(skipUntilSignal: Signal<U>) -> Signal
    {
        return Signal<T>(name: "\(self.name)-skipUntil") { [weak skipUntilSignal] progress, fulfill, reject, configure in
            
            let signalName = self.name
            

                progress(progressValue)
            }

            let triggerSignalName = triggerSignal!.name
            let cancelError = _RKError(.CancelledByTakeUntil, "Signal=\(signalName) is cancelled by takeUntil(\(triggerSignalName)).")
            
            triggerSignal?.progress { [weak self] (_, progressValue: U) in
                if let self_ = self {
                    self_.cancel(error: cancelError)
                }
