         unless @getActiveScrollAnimator()
           @startScrollAnimatorTracking()
 
-        # log scrollValue
-
-        @getScrollAnimator().addToDesiredScrollPosition bound -windowSize, -scrollValue, windowSize
+        scrollValue = bound -windowSize, -scrollValue, windowSize
+
+        position = @getScrollAnimator().desiredScrollPosition + scrollValue
+        @getScrollAnimator().desiredScrollPosition = bound(
+          @getScrollAnimator().minScrollPosition
+          position
+          @getScrollAnimator().maxScrollPosition
+        )
 
         timeout 100
         .then =>

      tracking:     direct tracking, no physics
    ###

  @getter
    mode:               -> @_mode
    minScrollPosition:  -> @scrollElement.getMinScrollPositionInReferenceFrame @_referenceFrame
    maxScrollPosition:  -> @scrollElement.getMaxScrollPositionInReferenceFrame @_referenceFrame

        @mode = "spring"
        @_desiredScrollPosition = @boundLocation @_desiredScrollPosition
        # @snapToPage() if @shouldSnapToPage

  addToDesiredScrollPosition: (delta) ->
    @_desiredScrollPosition += delta
