diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 9bde64cbc50403f6d5d3d5af91daae24ce7bd7be..323e03b02a339d3a6572ab1b98b8f9303c1c5887 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -1403,6 +1403,7 @@ void BaseTextEditor::maybeRequestAutoCompletion(const QChar &ch)
 {
     if (ch.isLetterOrNumber() || ch == QLatin1Char('_')) {
         d->m_requestAutoCompletionRevision = document()->revision();
+        d->m_requestAutoCompletionPosition = position();
         d->m_requestAutoCompletionTimer->start();
     } else {
         d->m_requestAutoCompletionTimer->stop();
@@ -1414,7 +1415,8 @@ void BaseTextEditor::_q_requestAutoCompletion()
 {
     d->m_requestAutoCompletionTimer->stop();
 
-    if (d->m_requestAutoCompletionRevision == document()->revision())
+    if (d->m_requestAutoCompletionRevision == document()->revision() &&
+            d->m_requestAutoCompletionPosition == position())
         emit requestAutoCompletion(editableInterface(), false);
 }
 
@@ -1935,6 +1937,7 @@ BaseTextEditorPrivate::BaseTextEditorPrivate()
     m_findScopeVerticalBlockSelection(0),
     m_highlightBlocksTimer(0),
     m_requestAutoCompletionRevision(0),
+    m_requestAutoCompletionPosition(0),
     m_requestAutoCompletionTimer(0),
     m_cursorBlockNumber(-1),
     m_inKeyPressEvent(false)
diff --git a/src/plugins/texteditor/basetexteditor_p.h b/src/plugins/texteditor/basetexteditor_p.h
index eae059487c5c2fc549d46509e18137b682a2d7d2..a344349be5412b81f10c17c5333d3768944bd4e1 100644
--- a/src/plugins/texteditor/basetexteditor_p.h
+++ b/src/plugins/texteditor/basetexteditor_p.h
@@ -264,6 +264,7 @@ public:
     QTimer *m_highlightBlocksTimer;
 
     int m_requestAutoCompletionRevision;
+    int m_requestAutoCompletionPosition;
     QTimer *m_requestAutoCompletionTimer;
 
     QPointer<BaseTextEditorAnimator> m_animator;