diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index c5aa42c6cb99409ee444c901ed4a404472ae6e5e..f6deef28402797ea382bfa3c4bbb7f54edf44aac 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1277,7 +1277,10 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         setDotCommand("C");
         finishMovement();
     } else if (key == control('c')) {
-        showBlackMessage("Type Alt-v,Alt-v  to quit FakeVim mode");
+        if (isNoVisualMode())
+            showBlackMessage("Type Alt-v,Alt-v  to quit FakeVim mode");
+        else
+            leaveVisualMode();
     } else if (key == 'd' && isNoVisualMode()) {
         if (m_rangemode == RangeLineMode) {
             m_savedYankPosition = m_tc.position();