         @state.gutters.customDecorations[gutterName] = {}
         gutterState = @state.gutters.customDecorations[gutterName]
 
+        return if !@gutterIsVisible(gutter)
+
         relevantDecorations = @customGutterDecorationsInRange(gutterName, @startRow, @endRow - 1)
         return if !relevantDecorations
 

    gutterDisposables = new CompositeDisposable
    gutterDisposables.add gutter.onDidChangeVisible =>
      @updateCustomGutterState()
    gutterDisposables.add gutter.onDidDestroy =>
      @disposables.remove(gutterDisposables)
      gutterDisposables.dispose()

            height: @lineHeight * decorationRange.getRowCount()
            item: decoration.getProperties().item
            class: decoration.getProperties().class

  gutterIsVisible: (gutterModel) ->
    isVisible = gutterModel.isVisible()
    if gutterModel.name is 'line-number'
      isVisible = isVisible && @showLineNumbers
    isVisible

  updateLineNumbersState: -> @batch "shouldUpdateLineNumbersState", ->
    return unless @startRow? and @endRow? and @lineHeight?
