diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 336059cf71b042601b660f6c0eba423f498f6342..7c158d1c9c4630b597e95b597e7fdc2681297fa0 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2130,6 +2130,9 @@ void FakeVimHandler::Private::enterFakeVim()
     QTC_ASSERT(!g.inFakeVim, qDebug() << "enterFakeVim() shouldn't be called recursively!"; return);
 
     m_cursor = EDITOR(textCursor());
+    if (m_cursor.isNull())
+        m_cursor = QTextCursor(document());
+
     g.inFakeVim = true;
 
     removeEventFilter();