diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index e0b41c6418c339d276c323739417df89e130e183..553d1e19ec025a9315db54f8ddc291b9ab7c86c9 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1101,7 +1101,13 @@ bool FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         }
         finishMovement("w");
     } else if (key == 'W') {
-        moveToNextWord(true);
+        if (m_submode == ChangeSubMode) {
+            moveToWordBoundary(true, true);
+            m_moveType = MoveInclusive;
+        } else {
+            moveToNextWord(true);
+            m_moveType = MoveExclusive;
+        }
         finishMovement("W");
     } else if (key == 'x') { // = "dl"
         m_moveType = MoveExclusive;