diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp
index 95971093824c18491ccdf50963335b4e7fb54e12..8d6b4dd97d3230be60a415729ca575bbef6ab4f4 100644
--- a/src/plugins/fakevim/handler.cpp
+++ b/src/plugins/fakevim/handler.cpp
@@ -403,7 +403,7 @@ void FakeVimHandler::Private::handleCommandMode(int key, const QString &text)
         finishMovement();
     } else if (key == 'z') {
         m_submode = ZSubMode;
-    } else if (key == '~') {
+    } else if (key == '~' && !atEol()) {
         m_tc.movePosition(Right, KeepAnchor, qMin(count(), rightDist()));
         QString str = m_tc.selectedText();
         for (int i = str.size(); --i >= 0; ) {