   updateLineDecorations: ->
     @lineDecorationsByScreenRow = {}
     @lineNumberDecorationsByScreenRow = {}
-    @customGutterDecorationsByGutterNameAndScreenRow = {}
-
-    for decorationId, {properties, screenRange, rangeIsReversed} of @decorations
-      if Decoration.isType(properties, 'line') or Decoration.isType(properties, 'gutter')
+    @customGutterDecorationsByGutterName = {}
+
+    for decorationId, decorationState of @decorations
+      {properties, screenRange, rangeIsReversed} = decorationState
+      if Decoration.isType(properties, 'line') or Decoration.isType(properties, 'line-number')
         @addToLineDecorationCaches(decorationId, properties, screenRange, rangeIsReversed)
+
+      else if Decoration.isType(properties, 'gutter') and properties.gutterName?
+        @customGutterDecorationsByGutterName[properties.gutterName] ?= {}
+        @customGutterDecorationsByGutterName[properties.gutterName][decorationId] = decorationState
 
     return
 

      if Decoration.isType(properties, 'line-number')
        @lineNumberDecorationsByScreenRow[row] ?= {}
        @lineNumberDecorationsByScreenRow[row][decorationId] = properties

      else if Decoration.isType(properties, 'gutter')
        gutterName = properties.gutterName
        @customGutterDecorationsByGutterNameAndScreenRow[gutterName] ?= {}
        @customGutterDecorationsByGutterNameAndScreenRow[gutterName][row] ?= {}
        @customGutterDecorationsByGutterNameAndScreenRow[gutterName][row][decorationId] = {properties, screenRange}

    return


    @characterWidthsByScope = {}
    @lineDecorationsByScreenRow = {}
    @lineNumberDecorationsByScreenRow = {}
    @customGutterDecorationsByGutterName = {}
    @screenRowsToMeasure = []
    @transferMeasurementsToModel()
    @transferMeasurementsFromModel()
