diff --git a/wax-prosemirror-components/src/components/comments/Comment.js b/wax-prosemirror-components/src/components/comments/Comment.js
index b8e257ea25c5784dc5069c7fb6c34aa69b474d61..27d74073ab0e0f8442842c773d9c56383436813c 100644
--- a/wax-prosemirror-components/src/components/comments/Comment.js
+++ b/wax-prosemirror-components/src/components/comments/Comment.js
@@ -22,7 +22,7 @@ export default ({ comment, activeView, user }) => {
 
   const handleKeyDown = event => {
     if (event.key === 'Enter' || event.which === 13) {
-      saveComment();
+      saveComment(event);
     }
   };
 
@@ -74,7 +74,7 @@ export default ({ comment, activeView, user }) => {
   };
 
   const resolveComment = event => {
-    event.stopPropagation();
+    if (event) event.stopPropagation();
     let maxPos = comment.pos;
     let minPos = comment.pos;
 
diff --git a/wax-prosemirror-components/src/components/comments/CommentBox.js b/wax-prosemirror-components/src/components/comments/CommentBox.js
index 9cb81a741efcb90cb37c870c1c6d759f5474b362..bd4b9eaaf672ee5e3b41d789315a2d590f18f986 100644
--- a/wax-prosemirror-components/src/components/comments/CommentBox.js
+++ b/wax-prosemirror-components/src/components/comments/CommentBox.js
@@ -1,6 +1,6 @@
 import React, { useState, useEffect, useContext } from 'react';
 import { TextSelection } from 'prosemirror-state';
-import { last } from 'lodash';
+import { last, maxBy } from 'lodash';
 
 import { Transition } from 'react-transition-group';
 import styled from 'styled-components';
@@ -59,18 +59,19 @@ export default ({ comment, top, dataBox }) => {
 
   const setCommentActive = () => {
     const viewId = comment.attrs.viewid;
-    let maxPos = comment.pos;
-    const allCommentsWithSameId = DocumentHelpers.findAllMarksWithSameId(view[viewId].state, comment);
 
-    allCommentsWithSameId.forEach(singleComment => {
-      const markPosition = DocumentHelpers.findMarkPosition(view[viewId], singleComment.pos, 'comment');
-      if (markPosition.to > maxPos) maxPos = markPosition.to;
-    });
+    if (active) {
+      view[viewId].focus();
+      return false;
+    }
+
+    const allCommentsWithSameId = DocumentHelpers.findAllMarksWithSameId(view[viewId].state, comment);
 
-    if (!active && allCommentsWithSameId.length > 1) maxPos += last(allCommentsWithSameId).node.nodeSize;
+    const maxPos = maxBy(allCommentsWithSameId, 'pos');
+    maxPos.pos += last(allCommentsWithSameId).node.nodeSize;
 
     view[viewId].dispatch(
-      view[viewId].state.tr.setSelection(new TextSelection(view[viewId].state.tr.doc.resolve(maxPos, maxPos))),
+      view[viewId].state.tr.setSelection(new TextSelection(view[viewId].state.tr.doc.resolve(maxPos.pos, maxPos.pos))),
     );
 
     view[viewId].focus();
diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
index ef355be3d26f8d5f998617be6a10434db349c98c..3e2caffbbde97bf6c1d23bbaf723837b6d78b507 100644
--- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js
+++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
@@ -96,7 +96,6 @@ const findAllMarksWithSameId = (state, mark) => {
   return allMarksWithSameId;
 };
 
-// TODO Also find fragmented marks
 const findMarkPosition = (activeView, initialPos, markType) => {
   const $pos = activeView.state.tr.doc.resolve(initialPos);
   const { parent } = $pos;