             parameters["stall_warnings"] = stallWarnings!
         }
 
-        self.postJSONWithPath(path, baseURL: self.streamURL, parameters: parameters, uploadProgress: nil, downloadProgress: progress, success: nil, failure: failure)
+        self.postJSONWithPath(path, baseURL: self.streamURL, parameters: parameters, uploadProgress: nil, downloadProgress: {
+            json, response in
+
+            if let jsonDict = json as? Dictionary<String, AnyObject> {
+                if let stallWarning: AnyObject = jsonDict["warning"] {
+                    switch (stallWarning["code"], stallWarning["message"], stallWarning["percent_full"]) {
+                    case (let code , let message, let percentFull):
+                        stallWarningHandler?(code: code as? String, message: message as? String, percentFull: percentFull as? Int)
+                    default:
+                        stallWarningHandler?(code: nil, message: nil, percentFull: nil)
+                    }
+                }
+                else {
+                    progress?(status: json as? Dictionary<String, AnyObject>)
+                }
+            }
+            else {
+                progress?(status: json as? Dictionary<String, AnyObject>)
+            }
+
+            }, success: {
+                json, response in
+
+                progress?(status: json as? Dictionary<String, AnyObject>)
+                return
+
+            }, failure: failure)
     }
 
     /*


        Streams messages for a single user, as described in User streams https://dev.twitter.com/docs/streaming-apis/streams/user
    */
    func getUserStreamDelimited(delimited: Bool?, stallWarnings: Bool?, includeMessagesFromFollowedAccounts: Bool?, includeReplies: Bool?, track: String[]?, locations: String[]?, stringifyFriendIDs: Bool?, progress: JSONSuccessHandler?, failure: SwifterHTTPRequest.FailureHandler?) {
        let path = "user.json"

        var parameters = Dictionary<String, AnyObject>()

            parameters["stall_warnings"] = stallWarnings!
        }

        self.getJSONWithPath(path, baseURL: self.streamURL, parameters: parameters, uploadProgress: nil, downloadProgress: {
            json, response in

            if let jsonDict = json as? Dictionary<String, AnyObject> {
                if let stallWarning: AnyObject = jsonDict["warning"] {
                    switch (stallWarning["code"], stallWarning["message"], stallWarning["percent_full"]) {
                    case (let code , let message, let percentFull):
                        stallWarningHandler?(code: code as? String, message: message as? String, percentFull: percentFull as? Int)
                    default:
                        stallWarningHandler?(code: nil, message: nil, percentFull: nil)
                    }
                }
                else {
                    progress?(status: json as? Dictionary<String, AnyObject>)
                }
            }
            else {
                progress?(status: json as? Dictionary<String, AnyObject>)
            }

            }, success: {
                json, response in

                progress?(status: json as? Dictionary<String, AnyObject>)
                return
                
            }, failure: failure)
    }

    /*
