         for callback in responseCallbacks
             { callback(newInfo) }
         responseCallbacks = []   // Fly, little handlers, be free!
+        progressCallbacks = []
         }
     
     private func shouldIgnoreResponse(newResponse: Response) -> Bool

    
    func progress(callback: Double -> Void) -> Self
        {
        progressCallbacks.append(callback)
        return self
        }
    

    
    private func addResponseCallback(callback: ResponseCallback)
        {
        addCallback(callback, to: &responseCallbacks, ifAlreadyComplete: responseInfo)
        }
    
    private func addCallback<T>(
            callback: T -> Void,
            inout to callbacks: [T -> Void],
            ifAlreadyComplete completedValue: T?)
        {
        if completed
            {
            // Request already completed. Callback can run immediately, but queue it on the main thread so that the
            // caller can finish their business first.
            
            dispatch_async(dispatch_get_main_queue())
                { callback(completedValue!) }
            }
        else
            {
            // Request not yet completed.
            
            callbacks.append(callback)
            }
        }
    
