diff --git a/wax-prosemirror-components/src/components/comments/ConnectedComment.js b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
index 998aae93ed85789e41b29032893621e23d9fd897..6123e7382bb9dc8761fee39e671d82dfdff61ee3 100644
--- a/wax-prosemirror-components/src/components/comments/ConnectedComment.js
+++ b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
@@ -112,7 +112,6 @@ export default ({ comment, top, commentId, recalculateTops }) => {
     let minPos = comment.pos;
 
     allCommentsWithSameId.forEach(singleComment => {
-      console.log(singleComment.pos);
       const markPosition = DocumentHelpers.findMarkPosition(
         state,
         singleComment.pos,
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index ae90d0fae42f3e4cee21c16d254a229600418ee7..88a3b7298da028fa2c868c2eaf4fc580115ed138 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -2,7 +2,7 @@
 import React, { useEffect, useRef, useContext, useMemo } from 'react';
 import { filter } from 'lodash';
 import { EditorView } from 'prosemirror-view';
-import { EditorState, TextSelection } from 'prosemirror-state';
+import { EditorState } from 'prosemirror-state';
 import { StepMap } from 'prosemirror-transform';
 import { baseKeymap } from 'prosemirror-commands';
 import { keymap } from 'prosemirror-keymap';
@@ -139,9 +139,9 @@ export default ({ node, view }) => {
       );
     }
   }
-  const MemorizedComponent = useMemo(
+  const NoteEditorContainerComponent = useMemo(
     () => <NoteEditorContainer ref={editorRef} />,
     [],
   );
-  return <>{MemorizedComponent}</>;
+  return <>{NoteEditorContainerComponent}</>;
 };
diff --git a/wax-prosemirror-utilities/src/commands/Commands.js b/wax-prosemirror-utilities/src/commands/Commands.js
index 95b579ff46495ef5621462f1d5a9ba449af4d3e4..358bf429a979c8ce14fd55204f137138957147a7 100644
--- a/wax-prosemirror-utilities/src/commands/Commands.js
+++ b/wax-prosemirror-utilities/src/commands/Commands.js
@@ -1,5 +1,6 @@
 import { v4 as uuidv4 } from 'uuid';
 import { toggleMark } from 'prosemirror-commands';
+import { AddMarkStep } from 'prosemirror-transform';
 
 const setBlockType = (nodeType, attrs = {}) => {
   return (state, dispatch) => {
@@ -120,6 +121,19 @@ const isOnSameTextBlock = state => {
 };
 
 const createComment = (state, dispatch, group, viewid) => {
+  const {
+    selection: { $from, $to },
+  } = state;
+  let footnote = false;
+  state.doc.nodesBetween($from.pos, $to.pos, (node, from) => {
+    if (node.type.name === 'footnote') {
+      footnote = true;
+    }
+  });
+
+  createCommentOnFootnote(state, dispatch, group, viewid);
+  if (footnote) return;
+
   toggleMark(state.config.schema.marks.comment, {
     id: uuidv4(),
     group,
@@ -128,6 +142,70 @@ const createComment = (state, dispatch, group, viewid) => {
   })(state, dispatch);
 };
 
+const createCommentOnFootnote = (state, dispatch, group, viewid) => {
+  const {
+    selection: { $from },
+    selection,
+    tr,
+  } = state;
+
+  const { content } = $from.parent;
+  const $pos = state.doc.resolve($from.pos);
+  const commentStart = $from.pos - $pos.textOffset;
+  const commentEnd = commentStart + $pos.parent.child($pos.index()).nodeSize;
+
+  let start = $from.pos;
+  let end = commentEnd;
+  const ranges = [];
+
+  const allFragments = [];
+
+  selection.content().content.content.forEach(node => {
+    node.content.content.forEach(fragment => {
+      allFragments.push(fragment);
+    });
+  });
+
+  allFragments.forEach((contentNode, index) => {
+    start = index === 0 ? start : end;
+    end = index === 0 ? end : end + contentNode.nodeSize;
+    ranges.push({
+      start,
+      end,
+      footnote: contentNode.type.name === 'footnote',
+    });
+  });
+
+  const mergedRanges = [];
+  ranges.forEach((item, i) => {
+    if (item.footnote) {
+      mergedRanges[mergedRanges.length - 1].end =
+        mergedRanges[mergedRanges.length - 1].end + 1;
+    } else {
+      mergedRanges.push(item);
+    }
+  });
+
+  const id = uuidv4();
+
+  mergedRanges.forEach(range => {
+    tr.step(
+      new AddMarkStep(
+        range.start,
+        range.end,
+        state.config.schema.marks.comment.create({
+          id,
+          group,
+          conversation: [],
+          viewid,
+        }),
+      ),
+    );
+  });
+
+  dispatch(tr);
+};
+
 export default {
   setBlockType,
   blockActive,