                 indicator.stopAnimation(false, completion: completion)
             }
         } else {
-            rotateTimer = nil
             strokeTimer = nil
             stopAnimationsHandler = nil
             indicatorView.layer.removeAllAnimations()


// MARK: - Timer
internal extension SpringIndicator {
    private func setRotateTimer(timeInterval ti: NSTimeInterval) {
        let timer = NSTimer(timeInterval: ti, target: self, selector: Selector("onRotateTimer:"), userInfo: nil, repeats: true)
        rotateTimer = timer
        Me.timerRunLoop.addTimer(timer, forMode: NSRunLoopCommonModes)
    }
    
    func onRotateTimer(sender: AnyObject) {
        let animation = lotateAnimation(lotateDuration)
        indicatorView.layer.removeAnimationForKey(Me.LotateAnimationKey)
        indicatorView.layer.addAnimation(animation, forKey: Me.LotateAnimationKey)
    }
    
    private func createStrokeTimer(timeInterval ti: NSTimeInterval, userInfo: AnyObject?, repeats yesOrNo: Bool) -> NSTimer {
        return NSTimer(timeInterval: ti, target: self, selector: Selector("onStrokeTimer:"), userInfo: userInfo, repeats: yesOrNo)
    }

        super.finalize()
        
        timerPort.invalidate()
    }
    
    private var strokeTimer: NSTimer? {
