diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 9f4618444d597b882fd2f6fec6161ef3cc897f7f..ae5d7164997d33a8655c48d705d5ce7aa720ed6e 100755
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1415,11 +1415,15 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
                 moveToEndOfLine();
                 setAnchor();
                 moveRight();
-                while (characterAtCursor() == ' ')
-                    moveRight();
-                removeSelectedText();
-                if (!m_gflag)
+                if (m_gflag) {
+                    removeSelectedText();
+                } else {
+                    while (characterAtCursor() == ' '
+                        || characterAtCursor() == '\t')
+                        moveRight();
+                    removeSelectedText();
                     m_tc.insertText(" ");
+                }
             }
             if (!m_gflag)
                 moveLeft();