 
     @_runCallbackOnExtensions("onContentChanged", {mutations})
 
-    @_saveSelectionState()
+    selection = new ExtendedSelection(@_editableNode())
+    if selection?.isInScope()
+      @_saveExportedSelection(selection.exportSelection())
 
     @props.onChange(target: {value: @_editableNode().innerHTML})
 

  #
  # We also need to keep references to the previous selection state in
  # order for undo/redo to work properly.
  _saveSelectionState: (exportedStateToSave=null) =>
    extendedSelection = new ExtendedSelection(@_editableNode())
    if exportedStateToSave
      extendedSelection.importSelection(exportedStateToSave)
    return unless extendedSelection?.isInScope()
    return if (@innerState.exportedSelection?.isEqual(extendedSelection))

    @setInnerState
      exportedSelection: extendedSelection.exportSelection()
      editableFocused: true
      previousExportedSelection: @innerState.exportedSelection

    @_onSelectionChanged(extendedSelection)

  _onSelectionChange: (event) => @_saveSelectionState()

  _restoreSelection: =>
    return unless @_shouldRestoreSelection()
    @_teardownListeners()
    extendedSelection = new ExtendedSelection(@_editableNode())
    extendedSelection.importSelection(@innerState.exportedSelection)
    if extendedSelection.isInScope()
      @_onSelectionChanged(extendedSelection)
    @_setupListeners()

  _shouldRestoreSelection: ->


  componentWillReceiveProps: (nextProps) =>
    if nextProps.initialSelectionSnapshot?
      @_saveExportedSelection(nextProps.initialSelectionSnapshot)

  componentDidUpdate: =>
    @_restoreSelection()
