diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 9f6012b3f1074d8856edb5d89d5b9a732b6a3b88..6cfcfb431fbf8f7a9037cdc52063bd28239476a1 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1765,7 +1765,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
     } else {
         //qDebug() << "IGNORED IN COMMAND MODE: " << key << text
         //    << " VISUAL: " << m_visualMode;
-        handled = EventUnhandled;
+
+        // if a key which produces text was pressed, don't mark it as unhandled
+        // - otherwise the text would be inserted while being in command mode
+        if (text.isEmpty()) {
+            handled = EventUnhandled;
+        }
     }
 
     return handled;