         super.touchesCancelled(touches, withEvent: event)
 
         if inProgress {
-            currentTouches.removeAll()
-            relativeForces = nil
             state = .Cancelled
         } else {
             currentTouches.subtractInPlace(touches)

            let numberOfTouchesSuccessful = relativeForces!.filter({ $0 > minimumRelativeForceRequired }).count

            if numberOfTouchesSuccessful == numberOfTouchesRequired {
                currentTouches.removeAll()
                state = .Ended
            } else {
                state = .Changed

            view?.traitCollection.forceTouchCapability == .Available {
            state = .Began
        } else if inProgress {
            state = .Cancelled
        }

