     row = @rows[index]
     @rows.splice(index, 1)
 
-    @emitModifiedStatusChange()
     @emitter.emit 'did-remove-row', {row, index}
     unless batch
+      @emitModifiedStatusChange()
       @emitter.emit 'did-change-rows', {
         oldRange: {start: index, end: index+1}
         newRange: {start: index, end: index}


    createdRows = rows.map (row,i) => @addRowAt(index+i, row, true)

    @emitter.emit 'did-change-rows', {
      oldRange: {start: index, end: index}
      newRange: {start: index, end: index+rows.length}

    else
      @rows.splice index, 0, row

    @emitter.emit 'did-add-row', {row, index}

    unless batch
      @emitModifiedStatusChange()
      @emitter.emit 'did-change-rows', {
        oldRange: {start: index, end: index}
        newRange: {start: index, end: index+1}
