diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 53f3fa26b0230a7e5d797cb6babe7976831fcb33..447e560cdfa89d713885fa21c423330f872b1919 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -511,7 +511,7 @@ void FakeVimHandler::Private::showBlackMessage(const QString &msg)
 
 bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
 {
-    Q_UNUSED(text)
+    bool handled = true;
 
     if (m_submode == RegisterSubMode) {
         m_register = key;
@@ -834,9 +834,11 @@ bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
             leaveVisualMode();
     } else {
         qDebug() << "Ignored in command mode: " << key << text;
-        return false;
+        if (text.isEmpty())
+            handled = false;
     }
-    return true;
+
+    return handled;
 }
 
 bool FakeVimHandler::Private::handleInsertMode(int key, const QString &text)