 
     return if @model.isMini()
 
+    visibleHighlights = {}
     startRow = @computeStartRow()
     endRow = @computeEndRow()
     return unless 0 <= startRow <= endRow <= Infinity
 
-    for markerId, decorations of @model.decorationsForScreenRowRange(startRow, endRow)
+    for markerId, decorations of @model.decorationsForScreenRowRange(startRow, endRow - 1)
       marker = @model.getMarker(markerId)
       continue unless marker.isValid()
 

      for decoration in decorations
        if decoration.isType('line') or decoration.isType('line-number')
          @updateLineDecorationCaches(decoration, range)

  updateLineDecorationCaches: (decoration, range) ->
    marker = decoration.getMarker()

      @updateDecorations()
      @updateLineNumbersState()
    else if decoration.isType('highlight')
      @updateDecorations()
    else if decoration.isType('overlay')
      @updateOverlaysState()

