diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index b021f061bd8c33abf1f97faaa881081c6f4aba75..9f6012b3f1074d8856edb5d89d5b9a732b6a3b88 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1315,7 +1315,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
             moveLeft();
         setAnchor();
         m_submode = ChangeSubMode;
-    } else if (key == 'c' && isVisualCharMode()) {
+    } else if (key == 'c' && (isVisualCharMode() || isVisualLineMode())) {
+        m_rangemode = isVisualCharMode() ? RangeCharMode : RangeLineMode;
         leaveVisualMode();
         m_submode = ChangeSubMode;
         finishMovement();