     }
 
     deinit {
-        if !self.suspended {
-            dispatch_source_cancel(self.clearTimer)
-        }
+        self.timer.fire()
+        self.timer.invalidate()
         self.session.finishTasksAndInvalidate()
     }
 

        self.session = NSURLSession(configuration: sessionConfiguration)
        self.request = request

        dispatch_resume(self.clearTimer)
    }

    public convenience init(
        URL: NSURL,
        HTTPMethod: String,
        successCodes: Set<Int> = Set([200, 201, 202, 204]),
        sessionConfiguration: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration(),
        minimumLogLevel: LXLogLevel = .All,
        dateFormatter: LXDateFormatter = LXDateFormatter.standardFormatter(),


    public init(
        request: NSURLRequest,
        successCodes: Set<Int> = defaultSuccessCodes,
        sessionConfiguration: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration(),
        minimumLogLevel: LXLogLevel = .All,
        dateFormatter: LXDateFormatter = LXDateFormatter.standardFormatter()
