diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index 670088f2c5decd299c7479ce1491c1283d7470c9..ad7e66591b86ea313953c60586765d7232a56b98 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -315,6 +315,7 @@ void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistR
             this, SLOT(processProposalItem(IAssistProposalItem*)));
     m_proposalWidget->setAssistant(m_q);
     m_proposalWidget->setReason(reason);
+    m_proposalWidget->setKind(m_assistKind);
     m_proposalWidget->setUnderlyingWidget(m_textEditor->widget());
     m_proposalWidget->setModel(m_proposal->model());
     m_proposalWidget->setDisplayRect(m_textEditor->cursorRect(m_proposal->basePosition()));
diff --git a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
index 5dcde3de40f547cf477216a76618cf333c41bb78..f355365b43f9a7eb6dd325a3f33ab8fcd5b4f806 100644
--- a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
@@ -132,10 +132,11 @@ void FunctionHintProposalWidget::setAssistant(CodeAssistant *assistant)
     m_d->m_assistant = assistant;
 }
 
-void FunctionHintProposalWidget::setReason(AssistReason reason)
-{
-    Q_UNUSED(reason);
-}
+void FunctionHintProposalWidget::setReason(AssistReason)
+{}
+
+void FunctionHintProposalWidget::setKind(AssistKind)
+{}
 
 void FunctionHintProposalWidget::setUnderlyingWidget(const QWidget *underlyingWidget)
 {
diff --git a/src/plugins/texteditor/codeassist/functionhintproposalwidget.h b/src/plugins/texteditor/codeassist/functionhintproposalwidget.h
index bd60293d1bd86ec14cbd51de1a271507d38c1f92..f3dc0611ac03f05f8be2a9fddb11b3a1f39d3583 100644
--- a/src/plugins/texteditor/codeassist/functionhintproposalwidget.h
+++ b/src/plugins/texteditor/codeassist/functionhintproposalwidget.h
@@ -51,6 +51,7 @@ public:
 
     virtual void setAssistant(CodeAssistant *assistant);
     virtual void setReason(AssistReason reason);
+    virtual void setKind(AssistKind kind);
     virtual void setUnderlyingWidget(const QWidget *underlyingWidget);
     virtual void setModel(IAssistProposalModel *model);
     virtual void setDisplayRect(const QRect &rect);
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
index dd9f070a54992c702d171df2fe1c468b49640ea8..883e8897b428d26382ac0c94f537d16ee009d71b 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
@@ -241,6 +241,7 @@ public:
     bool m_isSynchronized;
     bool m_explicitlySelected;
     AssistReason m_reason;
+    AssistKind m_kind;
     bool m_justInvoked;
     QPointer<GenericProposalInfoFrame> m_infoFrame;
     QTimer m_infoTimer;
@@ -349,6 +350,11 @@ void GenericProposalWidget::setReason(AssistReason reason)
         m_d->m_justInvoked = true;
 }
 
+void GenericProposalWidget::setKind(AssistKind kind)
+{
+    m_d->m_kind = kind;
+}
+
 void GenericProposalWidget::setUnderlyingWidget(const QWidget *underlyingWidget)
 {
     setFont(underlyingWidget->font());
@@ -452,6 +458,7 @@ bool GenericProposalWidget::updateAndCheck(const QString &prefix)
     }
 
     if (TextEditorSettings::instance()->completionSettings().m_partiallyComplete
+            && m_d->m_kind == Completion
             && m_d->m_justInvoked
             && m_d->m_isSynchronized) {
         if (m_d->m_model->size() == 1) {
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.h b/src/plugins/texteditor/codeassist/genericproposalwidget.h
index a765d413dc385be0396ad9c958399fa43dea5d25..9246665a551ff03b5c61a0f1da3bb87cd7fa87a3 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.h
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.h
@@ -52,6 +52,7 @@ public:
 
     virtual void setAssistant(CodeAssistant *assistant);
     virtual void setReason(AssistReason reason);
+    virtual void setKind(AssistKind kind);
     virtual void setUnderlyingWidget(const QWidget *underlyingWidget);
     virtual void setModel(IAssistProposalModel *model);
     virtual void setDisplayRect(const QRect &rect);
diff --git a/src/plugins/texteditor/codeassist/iassistproposalwidget.h b/src/plugins/texteditor/codeassist/iassistproposalwidget.h
index 1a9d866363305e943c6cdaa92bf48b43e45b992d..93f326ba3f0c0d5f1b1f953f37101528a240599d 100644
--- a/src/plugins/texteditor/codeassist/iassistproposalwidget.h
+++ b/src/plugins/texteditor/codeassist/iassistproposalwidget.h
@@ -55,6 +55,7 @@ public:
 
     virtual void setAssistant(CodeAssistant *assistant) = 0;
     virtual void setReason(AssistReason reason) = 0;
+    virtual void setKind(AssistKind kind) = 0;
     virtual void setUnderlyingWidget(const QWidget *underlyingWidget) = 0;
     virtual void setModel(IAssistProposalModel *model) = 0;
     virtual void setDisplayRect(const QRect &rect) = 0;