diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index d2b4af40f19fe72ff5558df8bea4f29aaea83d5c..bf4751cba2345be71eae246464ac2886ab664dd3 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -843,6 +843,9 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommand)
         if (m_movetype == MoveLineWise)
             m_registers[m_register].rangemode = RangeLineMode;
         removeSelectedText(true);
+        if (m_movetype == MoveLineWise) {
+            insertAutomaticIndentation(true);
+        }
         endEditBlock();
         enterInsertMode();
         m_beginEditBlock = false;
@@ -1387,6 +1390,9 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         m_submode = ChangeSubMode;
     } else if (key == 'c' && (isVisualCharMode() || isVisualLineMode())) {
         m_rangemode = isVisualCharMode() ? RangeCharMode : RangeLineMode;
+        if (isVisualLineMode()) {
+            m_movetype =  MoveLineWise;
+        }
         leaveVisualMode();
         m_submode = ChangeSubMode;
         finishMovement();