diff --git a/editors/editoria/package.json b/editors/editoria/package.json
index f7b8b48108385498b8a7e8dc4bdd0807fed6a33e..e3f390a2289f59232eea9bca74421a1176f92551 100644
--- a/editors/editoria/package.json
+++ b/editors/editoria/package.json
@@ -6,7 +6,7 @@
     "@guardian/prosemirror-invisibles": "^1.2.0",
     "@pubsweet/ui-toolkit": "^2.3.1",
     "fontsource-merriweather": "^3.0.9",
-    "prosemirror-tables": "^1.1.0",
+    "prosemirror-tables": "^1.1.1",
     "react": "^16.13.1",
     "react-dom": "^16.13.1",
     "react-panelgroup": "^1.0.10",
diff --git a/wax-prosemirror-components/src/components/comments/ConnectedComment.js b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
index 23269d7894fa3f31788b812ee006d757c32c412b..acb054b8940b4152e8bccea7de2a67356d9fe3d4 100644
--- a/wax-prosemirror-components/src/components/comments/ConnectedComment.js
+++ b/wax-prosemirror-components/src/components/comments/ConnectedComment.js
@@ -17,6 +17,7 @@ const ConnectedCommentStyled = styled.div`
 `;
 
 export default ({ comment, top, commentId, recalculateTops }) => {
+  const context = useContext(WaxContext);
   const {
     view,
     view: {
@@ -26,7 +27,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
     },
     app,
     activeView,
-  } = useContext(WaxContext);
+  } = context;
 
   const [isActive, setIsActive] = useState(false);
   const [clickPost, setClickPost] = useState(false);
@@ -53,6 +54,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
 
   useEffect(() => {
     setIsActive(false);
+    recalculateTops();
     if (activeComment && commentId === activeComment.attrs.id) {
       setIsActive(true);
       recalculateTops();
@@ -92,6 +94,8 @@ export default ({ comment, top, commentId, recalculateTops }) => {
       return false;
     }
 
+    if (viewId !== 'main') context.updateView({}, viewId);
+
     const maxPos = maxBy(allCommentsWithSameId, 'pos');
     maxPos.pos += last(allCommentsWithSameId).node.nodeSize;
 
@@ -120,6 +124,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
     });
     // if (allCommentsWithSameId.length > 1);
     // maxPos += last(allCommentsWithSameId).node.nodeSize;
+    recalculateTops();
     dispatch(state.tr.removeMark(minPos, maxPos, commentMark));
     activeView.focus();
   };
@@ -138,7 +143,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
         onClickResolve();
         activeView.focus();
       }
-    }, 200);
+    }, 400);
   };
 
   const MemorizedComponent = useMemo(
diff --git a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
index cc2972a118bdfdf0ee90cbb7c31d74134be54ecb..b4e28d9e16c2b5a97b8179692b13e8156109f734 100644
--- a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
+++ b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js
@@ -19,7 +19,8 @@ const ConnectedTrackChangeStyled = styled.div`
 `;
 
 export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
-  const { app, activeView, view } = useContext(WaxContext);
+  const context = useContext(WaxContext);
+  const { app, activeView, view } = context;
   const user = app.config.get('user');
   const [isActive, setIsActive] = useState(false);
   const { state, dispatch } = activeView;
@@ -37,6 +38,8 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
   const onClickBox = trackData => {
     if (trackData.node) return focusOnBlcock(trackData);
 
+    if (viewId !== 'main') context.updateView({}, viewId);
+
     const allTracksWithSameId = DocumentHelpers.findAllMarksWithSameId(
       view[viewId].state,
       trackData,
@@ -67,6 +70,7 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
 
   useEffect(() => {
     setIsActive(false);
+    recalculateTops();
     if (activeTrackChange && trackChangeId === activeTrackChange.attrs.id) {
       setIsActive(true);
       recalculateTops();
diff --git a/wax-prosemirror-services/src/LinkService/LinkTool.js b/wax-prosemirror-services/src/LinkService/LinkTool.js
index c8301594fa42ea8c21d2f8d8a307c330039f6459..f9ee82a4051e3193b3b9c3da1e1bdc57970b52b3 100644
--- a/wax-prosemirror-services/src/LinkService/LinkTool.js
+++ b/wax-prosemirror-services/src/LinkService/LinkTool.js
@@ -25,6 +25,10 @@ export default class LinkTool extends Tools {
     };
   }
 
+  select = state => {
+    return Commands.isOnSameTextBlock(state);
+  };
+
   get active() {
     return state => {
       return Commands.markActive(state.config.schema.marks.link)(state);
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index d8b7871bd1586f88a251eda49d5e0d60979a31d6..a77c8da0c009c1cacd268916ef99e2dc9d5fb66a 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 } from 'prosemirror-state';
+import { EditorState, TextSelection } from 'prosemirror-state';
 import { StepMap } from 'prosemirror-transform';
 import { baseKeymap } from 'prosemirror-commands';
 import { keymap } from 'prosemirror-keymap';
@@ -37,6 +37,14 @@ export default ({ node, view }) => {
         // This is the magic part
         dispatchTransaction,
         handleDOMEvents: {
+          blur: () => {
+            context.view[noteId].dispatch(
+              context.view[noteId].state.tr.setSelection(
+                new TextSelection(context.view[noteId].state.tr.doc.resolve(0)),
+              ),
+            );
+          },
+
           mousedown: () => {
             context.updateView({}, noteId);
             clickInNote = true;
diff --git a/yarn.lock b/yarn.lock
index c57fb7235ad8b2e92e54da7186123ddb097f75cc..a1a25e10fdad58384f6458f67a11ac985e6bbaa1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14600,17 +14600,6 @@ prosemirror-state@1.3.3, prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, pr
     prosemirror-model "^1.0.0"
     prosemirror-transform "^1.0.0"
 
-prosemirror-tables@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.0.tgz#e7fc65e57a44759b0b999d8c71294f79e5a4d54b"
-  integrity sha512-E00+KSbDw65966GdiLBpqTNxIextw0RavlGmvdv/dyYbN9OTD0gzaoCU1S8MAbz4GLKmY9Y/g4nSiC1IL1ThQg==
-  dependencies:
-    prosemirror-keymap "^1.1.2"
-    prosemirror-model "^1.8.1"
-    prosemirror-state "^1.3.1"
-    prosemirror-transform "^1.2.1"
-    prosemirror-view "^1.13.3"
-
 prosemirror-tables@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz#ad66300cc49500455cf1243bb129c9e7d883321e"