diff --git a/wax-prosemirror-components/src/components/comments/Comment.js b/wax-prosemirror-components/src/components/comments/Comment.js
index c215af8c8a0e474692012968405d2a74041f6531..e41c89094b94413e24fda4b239e2f9ab91648735 100644
--- a/wax-prosemirror-components/src/components/comments/Comment.js
+++ b/wax-prosemirror-components/src/components/comments/Comment.js
@@ -92,22 +92,16 @@ export default ({ comment, activeView, user, active }) => {
 
   const resolveComment = event => {
     if (event) event.stopPropagation();
-    let maxPos = comment.pos;
-    let minPos = comment.pos;
 
-    allCommentsWithSameId.forEach(singleComment => {
-      const markPosition = DocumentHelpers.findMarkPosition(
-        activeView,
-        singleComment.pos,
-        'comment',
-      );
-      if (markPosition.from < minPos) minPos = markPosition.from;
-      if (markPosition.to > maxPos) maxPos = markPosition.to;
-    });
+    const actualComment = DocumentHelpers.findMarkPosition(
+      activeView.state,
+      allCommentsWithSameId[0].pos,
+      'comment',
+    );
 
-    if (allCommentsWithSameId.length > 1)
-      maxPos += last(allCommentsWithSameId).node.nodeSize;
-    dispatch(state.tr.removeMark(minPos, maxPos, commentMark));
+    dispatch(
+      state.tr.removeMark(actualComment.from, actualComment.to, commentMark),
+    );
     activeView.focus();
   };
 
diff --git a/wax-prosemirror-plugins/src/comments/CommentPlugin.js b/wax-prosemirror-plugins/src/comments/CommentPlugin.js
index 03b77b01f0c4f4a85d9740fa1f0142a87d85991b..6c722704af223f033512ef45ab2e9ad6b5826bb3 100644
--- a/wax-prosemirror-plugins/src/comments/CommentPlugin.js
+++ b/wax-prosemirror-plugins/src/comments/CommentPlugin.js
@@ -7,7 +7,10 @@ const commentPlugin = new PluginKey('commentPlugin');
 
 const getComment = state => {
   const commentMark = state.schema.marks.comment;
-  const commentOnSelection = DocumentHelpers.findFragmentedMark(state, commentMark);
+  const commentOnSelection = DocumentHelpers.findFragmentedMark(
+    state,
+    commentMark,
+  );
 
   // Don't allow Active comment if selection is not collapsed
   if (
@@ -19,30 +22,13 @@ const getComment = state => {
   }
 
   if (commentOnSelection) {
-    const commentNodes = DocumentHelpers.findChildrenByMark(state.doc, commentMark, true);
-
-    const allCommentsWithSameId = [];
-    commentNodes.map(node => {
-      node.node.marks.filter(mark => {
-        if (mark.type.name === 'comment' && commentOnSelection.attrs.id === mark.attrs.id) {
-          allCommentsWithSameId.push(node);
-        }
-      });
-    });
-
-    if (allCommentsWithSameId.length > 1) {
-      const minPos = minBy(allCommentsWithSameId, 'pos');
-      const maxPos = maxBy(allCommentsWithSameId, 'pos');
-
-      return {
-        from: minPos.pos,
-        to: maxPos.pos + last(allCommentsWithSameId).node.nodeSize,
-        attrs: commentOnSelection.attrs,
-        contained: commentOnSelection.contained,
-      };
-    }
+    const actualComment = DocumentHelpers.findMarkPosition(
+      state,
+      commentOnSelection.from,
+      'comment',
+    );
+    return actualComment;
   }
-  return commentOnSelection;
 };
 
 export default props => {
diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
index 02d6cbfbd4f26eced8bcc24bfbe19ecce9efc770..95b238ad2ec2bda95c70a4469b5fbecc234f5763 100644
--- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js
+++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
@@ -96,27 +96,32 @@ const findAllMarksWithSameId = (state, mark) => {
   return allMarksWithSameId;
 };
 
-const findMarkPosition = (activeView, initialPos, markType) => {
-  const $pos = activeView.state.tr.doc.resolve(initialPos);
+const findMarkPosition = (state, initialPos, markType) => {
+  const $pos = state.tr.doc.resolve(initialPos);
   const { parent } = $pos;
   const start = parent.childAfter($pos.parentOffset);
   if (!start.node) return null;
   const actualMark = start.node.marks.find(mark => mark.type.name === markType);
+
   let startIndex = $pos.index();
   let startPos = $pos.start() + start.offset;
   while (
     startIndex > 0 &&
     actualMark.isInSet(parent.child(startIndex - 1).marks)
-  )
+  ) {
     startPos -= parent.child(--startIndex).nodeSize;
-  let endIndex = $pos.indexAfter();
-  let endPos = startPos + start.node.nodeSize;
+  }
+  let endIndex = $pos.index() + 1;
+  let endPos = $pos.start() + start.offset + start.node.nodeSize;
+
   while (
-    endPos < parent.childCount &&
+    endIndex < parent.childCount &&
     actualMark.isInSet(parent.child(endIndex).marks)
-  )
+  ) {
     endPos += parent.child(endIndex++).nodeSize;
-  return { from: startPos, to: endPos };
+  }
+
+  return { from: startPos, to: endPos, attrs: actualMark.attrs };
 };
 
 export const flatten = (node, descend = true) => {