diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 3f8e732a2a04428ab33d73b659cae5834109119d..2b33f4cd29ca6281d13254bfab9b0ca66d40088c 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -665,8 +665,9 @@ EventResult FakeVimHandler::Private::handleEvent(QKeyEvent *ev)
         moveRight();
 
     if ((mods & Qt::ControlModifier) != 0) {
+        if (key >= Key_A && key <= Key_Z)
+            key += 32; // make it lower case
         key += 256;
-        key += 32; // make it lower case
     } else if (key >= Key_A && key <= Key_Z && (mods & Qt::ShiftModifier) == 0) {
         key += 32;
     }