diff --git a/src/plugins/texteditor/completionwidget.cpp b/src/plugins/texteditor/completionwidget.cpp
index ed8a7e250c84a34ad6dfd731844df11fe22ed17d..fb766e2d20f5624aa93db58e355f563d9c0e482c 100644
--- a/src/plugins/texteditor/completionwidget.cpp
+++ b/src/plugins/texteditor/completionwidget.cpp
@@ -211,6 +211,9 @@ bool CompletionWidget::event(QEvent *e)
             forwardKeys = false;
             break;
         default:
+            // if a key is forwarded, completion widget is re-opened and selected item is reset to first,
+            // so only forward keys that insert text and refine the completed item
+            forwardKeys = !ke->text().isEmpty();
             break;
         }