     @updateInvalidRows(start, end, delta)
     previousEndStack = @stackForRow(end) # used in spill detection below
     if @largeFileMode or @grammar.name is 'Null Grammar'
-      newTokenizedLines = @buildPlaceholderTokenizedLinesForRows(start, end + delta)
+      lineCount = ((end + delta) - start) + 1
+      newTokenizedLines = new Array(lineCount)
     else
       newTokenizedLines = @buildTokenizedLinesForRows(start, end + delta, @stackForRow(start - 1), @openScopesForRow(start))
     _.spliceWithArray(@tokenizedLines, start, end - start + 1, newTokenizedLines)

  tokenizeNextChunk: ->
    # Short circuit null grammar which can just use the placeholder tokens
    if @grammar.name is 'Null Grammar' and @firstInvalidRow()?
      @tokenizedLines = @buildPlaceholderTokenizedLinesForRows(0, @buffer.getLastRow())
      @invalidRows = []
      @markTokenizationComplete()
      return

      @tokenizeInBackground()

    tokenizedLines

  buildTokenizedLineForRow: (row, ruleStack, openScopes) ->
    @buildTokenizedLineForRowWithText(row, @buffer.lineForRow(row), ruleStack, openScopes)
