     else
       @["_#{ @_touchAxis }1"] = e.targetTouches[0]["page#{ @_touchAxis.toUpperCase() }"]
 
-    # Add movement listener.
-    @stageEl.addEventListener 'touchmove', @_onTouchMove, false
-    @stageEl.addEventListener 'mousemove', @_onTouchMove, false
-
     # Return that value to an external listener.
     @settings.touchStartCallback @["_#{ @_touchAxis }1"]
 
 
   # Called on touch/mouse movement.
   _onTouchMove: (e) =>
-    return unless @_touchEnabled
+    return unless @_touchEnabled and @_touchStarted
     e.preventDefault()
     # Set a reference to the current x or y position.
     if e.type is 'mousemove'



  # Teardown process when touch/drag event ends.
  _onTouchEnd: (e) =>
    return unless @_touchEnabled
    # Enable tweening again.
    @_setTweening true

    # Remove movement listeners.
    @stageEl.removeEventListener 'touchmove', @_onTouchMove, false
    @stageEl.removeEventListener 'mousemove', @_onTouchMove, false

    # Pass callback final value.
    @settings.touchEndCallback @["_#{ @_touchAxis }Last"]


  # Public Methods

  _onTouchStart: (e) =>
    return unless @_touchEnabled
    e.preventDefault()
    # Set a property to track touch starts.
    @_touchStarted = true
    # Change the cursor to the active `grabbing` state.
    @stageEl.style.cursor = css.grabbing
    # Disable tweening to enable instant 1 to 1 movement.
    @_setTweening false
    # Derive the axis to fold on.
