diff --git a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
index 7afad204f700ffa84acbfa99792d0bca26c28403..48192a42233ab0e885b47353dbc3fd4acc8a3a4a 100644
--- a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
@@ -1,3 +1,6 @@
+import { Mapping, RemoveMarkStep } from 'prosemirror-transform';
+import { minBy, maxBy } from 'lodash';
+
 import { injectable } from 'inversify';
 import Tools from '../../lib/Tools';
 
@@ -10,9 +13,12 @@ class AcceptTrackChange extends Tools {
   get run() {
     return (state, dispatch) => {
       const {
+        tr,
         selection: { from, to },
       } = state;
 
+      const map = new Mapping();
+
       state.doc.nodesBetween(from, to, (node, pos) => {
         if (
           node.marks &&
@@ -21,15 +27,16 @@ class AcceptTrackChange extends Tools {
           const insertionMark = node.marks.find(
             mark => mark.type.name === 'insertion',
           );
-          dispatch(
-            state.tr.removeMark(
-              insertionMark.pos,
-              insertionMark.pos + node.nodeSize,
-              state.schema.marks.insertion,
+          tr.step(
+            new RemoveMarkStep(
+              map.map(maxBy(pos, from)),
+              map.map(minBy(pos + node.nodeSize, to)),
+              insertionMark,
             ),
           );
         }
       });
+      dispatch(tr);
     };
   }