diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index bf4751cba2345be71eae246464ac2886ab664dd3..6c4a0220300fe8f90789b959031945940a14875d 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1674,13 +1674,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         const int line = cursorLineInDocument() + 1;
         setAnchor(firstPositionInLine(line));
         setPosition(lastPositionInLine(line + count() - 1));
-        yankSelectedText();
-        removeSelectedText();
         setDotCommand("%1S", count());
-        m_opcount.clear();
-        m_mvcount.clear();
         enterInsertMode();
         m_beginEditBlock = false;
+        m_submode = ChangeSubMode;
+        m_movetype = MoveLineWise;
+        finishMovement();
     } else if (key == 't') {
         m_movetype = MoveInclusive;
         m_subsubmode = FtSubSubMode;