diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 6174f486ddb2d105c6c88e83d6ff7f24821e27fa..5cddec10873b3357450cc94825954acdaec3b116 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2016,7 +2016,7 @@ EventResult FakeVimHandler::Private::handleInsertMode(int key, int,
             if (col <= ind.logical && col && startsWithWhitespace(data, col)) {
                 const int ts = config(ConfigTabStop).toInt();
                 const int newcol = col - 1 - (col - 1) % ts;
-                setLineContents(line, tabExpand(newcol) + data.midRef(col));
+                setLineContents(line, tabExpand(newcol).append(data.midRef(col)));
                 m_lastInsertion.clear(); // FIXME
             } else {
                 m_tc.deletePreviousChar();