       highlightState.class = properties.class
       highlightState.deprecatedRegionClass = properties.deprecatedRegionClass
       highlightState.regions = @buildHighlightRegions(tileStartRow, tileRange)
+
+      @visibleHighlights[tileStartRow] ?= {}
+      @visibleHighlights[tileStartRow][decoration.id] = true
 
       startRow = tileEndRow
 

    @lineDecorationsByScreenRow = {}
    @lineNumberDecorationsByScreenRow = {}
    @customGutterDecorationsByGutterNameAndScreenRow = {}

    visibleHighlights = {}
    return unless 0 <= @startRow <= @endRow <= Infinity

    for markerId, decorations of @model.decorationsForScreenRowRange(@startRow, @endRow - 1)

        if decoration.isType('line') or decoration.isType('gutter')
          @addToLineDecorationCaches(decoration, range)
        else if decoration.isType('highlight')
          @updateHighlightState(decoration)

    for tileId, tileState of @state.content.tiles
      for id, highlight of tileState.highlights
        delete tileState.highlights[id] unless @visibleHighlights[tileId]?[id]?

    return

