       @setParticipantCursor row, column, origin
 
 
+  getNewCursorPosition: (oldContent, newContent, oldRowNumber) ->
+    return if not oldContent or not newContent
+
+    oldContentLines = oldContent.split '\n'
+    newContentLines = newContent.split '\n'
+    oldLinesAbove   = oldContentLines.slice 0, oldRowNumber
+    newLinesAbove   = newContentLines.slice 0, oldRowNumber
+    oldLinesBelow   = oldContentLines.slice oldRowNumber, oldContentLines.length
+
+    unless oldLinesAbove is newLinesAbove
+      newCursorPosition = newContentLines.length - oldLinesBelow.length
+
+    return newCursorPosition ? 0

    {context, type, origin} = change

    if type is 'ContentChange'
      string = rtm.getFromModel realTimeDoc, context.file.path
      @setContent string.getText(), no

    if type is 'CursorActivity'
      {row, column} = context.cursor

      session.removeMarker oldCursor.id

    range = new AceRange row, column, row, column + 1
    id    = session.addMarker range, cssClass, 'text'

    @cursors[username] = { id, row, column }

