diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js
index 0c382d617a2b083754a2c7203c2b9f173e0ecc69..dc0a2b609893496b33cacde10d68ad1c3a0e72ee 100644
--- a/editors/editoria/src/Editoria.js
+++ b/editors/editoria/src/Editoria.js
@@ -47,7 +47,9 @@ const Editoria = () => (
       autoFocus
       placeholder="Type Something..."
       fileUpload={file => renderImage(file)}
-      value={"<p>this is some content</p><p>second paragraph</p>"}
+      value={
+        '<p class="paragraph">this is <span class="deletion user-1234" data-id="" data-user="1234" data-username="demo" data-date="26486384" data-group="">some</span> content</p><p class="paragraph">second paragraph</p>'
+      }
       layout={EditoriaLayout}
       TrackChange
       // onChange={source => console.log(source)}
diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
index e0bfd55efbdbe50ef3d8215587167ad9b75f27f9..72c2028b2abc74ec2a6cc16f62849e308919dfe6 100644
--- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
+++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js
@@ -1,21 +1,29 @@
 import { ReplaceStep } from "prosemirror-transform";
 import { CellSelection } from "prosemirror-tables";
+import { DocumentHelpers } from "wax-prosemirror-utilities";
 
 import markDeletion from "./markDeletion";
 import markInsertion from "./markInsertion";
 
 const replaceStep = (state, tr, step, newTr, map, doc, user, date) => {
-  // We only insert content if this is not directly a tr for cell deletion. This is because tables delete rows by deleting the
-  // contents of each cell and replacing it with an empty paragraph.
   const cellDeleteTr =
     ["deleteContentBackward", "deleteContentForward"].includes(
       tr.getMeta("inputType")
     ) && state.selection instanceof CellSelection;
 
+  // if deletion mark move to the end of deletion
+  const deletionMarkSchema = state.schema.marks.deletion;
+  const deletionMark = DocumentHelpers.findMark(
+    state,
+    deletionMarkSchema,
+    false
+  );
+  const positionTo = deletionMark ? deletionMark.to : step.to;
+
   const newStep = !cellDeleteTr
     ? new ReplaceStep(
-        step.to, // We insert all the same steps, but with "from"/"to" both set to "to" in order not to delete content. Mapped as needed.
-        step.to,
+        positionTo, // We insert all the same steps, but with "from"/"to" both set to "to" in order not to delete content. Mapped as needed.
+        positionTo,
         step.slice,
         step.structure
       )
@@ -28,6 +36,7 @@ const replaceStep = (state, tr, step, newTr, map, doc, user, date) => {
       return;
     }
     const mappedNewStepTo = newStep.getMap().map(newStep.to);
+
     markInsertion(trTemp, newStep.from, mappedNewStepTo, user, date);
     // We condense it down to a single replace step.
     const condensedStep = new ReplaceStep(
diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
index ce093309726d978ff4184d26c670896c9481d4df..ee80e0839238ed243a68849bf2502aaa72563165 100644
--- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
+++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js
@@ -13,6 +13,8 @@ import {
   Mapping
 } from "prosemirror-transform";
 
+import { DocumentHelpers } from "wax-prosemirror-utilities";
+
 import replaceStep from "./helpers/replaceStep";
 import replaceAroundStep from "./helpers/replaceAroundStep";
 import addMarkStep from "./helpers/addMarkStep";
@@ -65,6 +67,13 @@ const trackedTransaction = (tr, state, user) => {
   }
 
   if (tr.selectionSet) {
+    const deletionMarkSchema = state.schema.marks.deletion;
+    const deletionMark = DocumentHelpers.findMark(
+      state,
+      deletionMarkSchema,
+      false
+    );
+
     if (
       tr.selection instanceof TextSelection &&
       (tr.selection.from < state.selection.from ||
@@ -72,7 +81,11 @@ const trackedTransaction = (tr, state, user) => {
     ) {
       const caretPos = map.map(tr.selection.from, -1);
       newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos)));
+    } else if (tr.selection.from > state.selection.from && deletionMark) {
+      const caretPos = map.map(deletionMark.to + 1, 1);
+      newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos)));
     } else {
+      console.log("not");
       newTr.setSelection(tr.selection.map(newTr.doc, map));
     }
   }