diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 5d43f8dc10658b1d94e58a32a55e597e9c95f9a9..b74691ecdd73c1f739ce1fc2981f979ded0b50e3 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -697,6 +697,8 @@ bool FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
     } else if (key == 'i') {
         enterInsertMode();
         updateMiniBuffer();
+        if (atEol())
+            m_tc.movePosition(Left, MoveAnchor, 1);
     } else if (key == 'I') {
         enterInsertMode();
         if (m_gflag)