diff --git a/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js b/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js
index dd51ee312763e546366c118e54eb4e8ef02eb2b4..05b0f57967ed09b97e739a38f73ce24d919c97fa 100644
--- a/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js
+++ b/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js
@@ -12,11 +12,13 @@ export default props => {
       init: (_, state) => {},
       apply(tr, prev, _, newState) {
         let createDecoration;
+
         if (
           newState.selection.from === newState.selection.to &&
           Commands.isInTable(newState)
         ) {
-          const widget = document.createElement('fakecursor');
+          const widget = document.createElement('span');
+          widget.setAttribute('id', 'fake-cursor');
           createDecoration = DecorationSet.create(newState.doc, [
             Decoration.widget(newState.selection.from, widget, {
               key: 'fakecursor',
@@ -38,22 +40,34 @@ export default props => {
       handleDOMEvents: {
         focus: (view, event) => {
           event.preventDefault();
-          const fakeCursor = document.getElementsByTagName('fakecursor');
-          if (fakeCursor && fakeCursor[0]) {
-            for (let i = 0; i < fakeCursor.length; i++) {
-              fakeCursor[i].style.visibility = 'hidden';
+          const fakeCursor = document.getElementById('fake-cursor');
+          if (fakeCursor) {
+            if (
+              navigator.userAgent.includes('Firefox') &&
+              view.state.selection.$from.nodeBefore == null
+            ) {
+              fakeCursor.style.visibility = 'hidden';
+            } else {
+              fakeCursor.style.display = 'none';
             }
           }
         },
         blur: (view, event) => {
           event.preventDefault();
           if (view && event.relatedTarget === null) {
-            view.focus();
+            setTimeout(() => {
+              view.focus();
+            });
           } else {
-            const fakeCursor = document.getElementsByTagName('fakecursor');
-            if (fakeCursor && fakeCursor[0]) {
-              for (let i = 0; i < fakeCursor.length; i++) {
-                fakeCursor[i].style.visibility = 'visible';
+            const fakeCursor = document.getElementById('fake-cursor');
+            if (fakeCursor) {
+              if (
+                navigator.userAgent.includes('Firefox') &&
+                view.state.selection.$from.nodeBefore === null
+              ) {
+                fakeCursor.style.visibility = 'visible';
+              } else {
+                fakeCursor.style.display = 'inline';
               }
             }
           }