       minusLabel.backgroundColor = backgroundColor
       plusLabel.backgroundColor  = backgroundColor
 
-      stopAutorepeat()
-    }
-  }
-
+      if autorepeat {
+        stopAutorepeat()
+
+        _factorValue = 0
+
+        updateValue(_value, finished: true)
+      }
+    }
+  }
+
+  /// Initial touch location
   var touchesBeganPoint = CGPointZero
 
   func sliderPanned(sender: UIPanGestureRecognizer) {


    _autorepeatCount = 0

    updateValue(nil)

    let newTimer = NSTimer(timeInterval: 0.1, target: self, selector: "updateValue:", userInfo: nil, repeats: true)
    timer        = newTimer

    NSRunLoop.currentRunLoop().addTimer(newTimer, forMode: NSRunLoopCommonModes)

        startAutorepeat()
      }
      else {
        let value = _value + stepValue * _factorValue

        updateValue(value, finished: true)
      }

      v!.backgroundColor = backgroundColor?.darkerColor()
