diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 0b6d6d88c5e9ad9086350d46fb2408a40372d794..90064d105733a84962ff3cbcb6bf20058111134d 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -2326,6 +2326,7 @@ void FakeVimHandler::Private::updateMiniBuffer()
             cursorPos = m_commandBuffer.cursorPos() + 1;
     } else if (!m_currentMessage.isEmpty()) {
         msg = m_currentMessage;
+        m_currentMessage.clear();
     } else if (g.mapStates.size() > 1 && !g.mapStates.last().silent) {
         // Do not reset previous message when after running a mapped command.
         return;
@@ -2346,8 +2347,6 @@ void FakeVimHandler::Private::updateMiniBuffer()
         msg = "-- COMMAND --";
     }
 
-    m_currentMessage.clear();
-
     emit q->commandBufferChanged(msg, cursorPos);
 
     int linesInDoc = linesInDocument();