       decompose = JetSync.decompose(oldDelta, newDelta)
       compose = JetSync.compose(oldDelta, decompose)
       console.assert(_.isEqual(compose, newDelta), oldDelta, newDelta, decompose, compose)
-      delta = decompose
+      delta = stripNewlineAttributes(decompose)
     else
       fn()
     @ignoreDomChanges = oldIgnoreDomChange

    this.enable() if @options.enabled

  setCursor: (userId, index, name, color) ->
    this.removeCursor(userId)
    cursor = @doc.root.ownerDocument.createElement('span')
    cursor.classList.add('cursor')

    index = 0       # Stores where the last retain end was, so if we see another one, we know to delete
    offset = 0      # Tracks how many characters inserted to correctly offset new text
    oldDelta = @doc.toDelta()
    delta = stripNewlineAttributes(delta)
    cursors = {}
    _.each(delta.deltas, (delta) =>
      if JetDelta.isInsert(delta)
