diff --git a/editors/editoria/src/layout/EditoriaLayout.js b/editors/editoria/src/layout/EditoriaLayout.js
index c01a058061daf7f9e21b0113e33def786f2b6a49..5871d1f6d83dfd915f70fb9bc00fa7237a1db5ee 100644
--- a/editors/editoria/src/layout/EditoriaLayout.js
+++ b/editors/editoria/src/layout/EditoriaLayout.js
@@ -196,38 +196,6 @@ const getNotes = main => {
   return notes;
 };
 
-const getCommentsTracks = main => {
-  const marks = DocumentHelpers.findInlineNodes(main.state.doc);
-  const commentsTracks = [];
-  marks.map(node => {
-    if (node.node.marks.length > 0) {
-      node.node.marks.filter(mark => {
-        if (
-          mark.type.name === 'comment' ||
-          mark.type.name === 'insertion' ||
-          mark.type.name === 'deletion' ||
-          mark.type.name === 'format_change'
-        ) {
-          mark.pos = node.pos;
-          commentsTracks.push(mark);
-        }
-      });
-    }
-  });
-  return commentsTracks;
-};
-
-const getTrackBlockNodes = main => {
-  const allBlockNodes = DocumentHelpers.findBlockNodes(main.state.doc);
-  const trackBlockNodes = [];
-  allBlockNodes.map(node => {
-    if (node.node.attrs.track && node.node.attrs.track.length > 0) {
-      trackBlockNodes.push(node);
-    }
-  });
-  return trackBlockNodes;
-};
-
 const LeftSideBar = ComponentPlugin('leftSideBar');
 const MainMenuToolBar = ComponentPlugin('mainMenuToolBar');
 const NotesArea = ComponentPlugin('notesArea');
@@ -258,8 +226,10 @@ const EditoriaLayout = ({ editor }) => {
     };
   }
   const notes = main && getNotes(main);
-  const commentsTracks = main && getCommentsTracks(main).length;
-  const trackBlockNodes = main && getTrackBlockNodes(main).length;
+  const commentsTracksCount =
+    main && DocumentHelpers.getCommentsTracksCount(main);
+  const trackBlockNodesCount =
+    main && DocumentHelpers.getTrackBlockNodesCount(main);
 
   const areNotes = notes && !!notes.length && notes.length > 0;
 
@@ -302,7 +272,7 @@ const EditoriaLayout = ({ editor }) => {
                 <CommentsContainer>
                   <CommentTrackToolsContainer>
                     <CommentTrackTools>
-                      {commentsTracks + trackBlockNodes} COMMENTS AND
+                      {commentsTracksCount + trackBlockNodesCount} COMMENTS AND
                       SUGGESTIONS
                       <CommentTrackOptions>
                         <CommentTrackToolBar />
diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
index 5e9e65003706ef4bd3591b383b8a18f76e83e33e..ae95ecb265d236b97de8b47033bdc942ab1edab2 100644
--- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
+++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js
@@ -163,12 +163,22 @@ const getTrackBlockNodes = main => {
 };
 
 const getComments = main => {
-  const comments = DocumentHelpers.findChildrenByMark(
+  const comments = [];
+  const commentsNodes = DocumentHelpers.findChildrenByMark(
     main.state.doc,
     main.state.schema.marks.comment,
     true,
   );
-  return comments;
+  commentsNodes.map(node => {
+    if (node.node.marks.length > 0) {
+      node.node.marks.filter(mark => {
+        if (mark.type.name === 'comment') {
+          comments.push(mark);
+        }
+      });
+    }
+  });
+  return [...new Set(comments.map(item => item.attrs.id))];
 };
 
 const TrackChangeOptionsComponent = ({
diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
index b5b0f7b9eeeeb2302f0c116f53bed69ceba0f39e..cea418a1119ab7ecb6d110b4c69877953b51b29f 100644
--- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js
+++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js
@@ -1,5 +1,3 @@
-import { isObject } from 'lodash';
-
 const findMark = (state, PMmark, toArr = false) => {
   const {
     selection: { $from, $to },
@@ -27,6 +25,43 @@ const findMark = (state, PMmark, toArr = false) => {
   return markFound;
 };
 
+const getCommentsTracksCount = main => {
+  const marks = findInlineNodes(main.state.doc);
+  const commentsTracksFormat = [];
+  const insertionsDeletions = [];
+  marks.map(node => {
+    if (node.node.marks.length > 0) {
+      node.node.marks.filter(mark => {
+        if (
+          mark.type.name === 'comment' ||
+          mark.type.name === 'format_change'
+        ) {
+          commentsTracksFormat.push(mark);
+        } else if (
+          mark.type.name === 'insertion' ||
+          mark.type.name === 'deletion'
+        ) {
+          insertionsDeletions.push(mark);
+        }
+      });
+    }
+  });
+  const unique = [...new Set(commentsTracksFormat.map(item => item.attrs.id))];
+  const total = unique.length + insertionsDeletions.length;
+  return total;
+};
+
+const getTrackBlockNodesCount = main => {
+  const allBlockNodes = findBlockNodes(main.state.doc);
+  const trackBlockNodes = [];
+  allBlockNodes.map(node => {
+    if (node.node.attrs.track && node.node.attrs.track.length > 0) {
+      trackBlockNodes.push(node);
+    }
+  });
+  return trackBlockNodes.length;
+};
+
 /* TODO */
 /* this is a hacky workaround for now to find marks
   that are pm will break them. Correct way is to be done
@@ -172,4 +207,6 @@ export default {
   findFragmentedMark,
   findAllMarksWithSameId,
   findMarkPosition,
+  getCommentsTracksCount,
+  getTrackBlockNodesCount,
 };