diff --git a/src/libs/cplusplus/TypeOfExpression.cpp b/src/libs/cplusplus/TypeOfExpression.cpp
index 7f08d5874d8c54df110f7001d33789e6a4a3199a..47d6b10360c0e0b68169b257630cfe034d09cb8b 100644
--- a/src/libs/cplusplus/TypeOfExpression.cpp
+++ b/src/libs/cplusplus/TypeOfExpression.cpp
@@ -47,6 +47,11 @@ TypeOfExpression::TypeOfExpression():
 {
 }
 
+Snapshot TypeOfExpression::snapshot() const
+{
+    return m_snapshot;
+}
+
 void TypeOfExpression::setSnapshot(const Snapshot &documents)
 {
     m_snapshot = documents;
diff --git a/src/libs/cplusplus/TypeOfExpression.h b/src/libs/cplusplus/TypeOfExpression.h
index c0eafb2e37f047258c50fa61ea9b6bc66c745357..1f41b26248a961658a1a93f66d8b5154f6415584 100644
--- a/src/libs/cplusplus/TypeOfExpression.h
+++ b/src/libs/cplusplus/TypeOfExpression.h
@@ -54,6 +54,8 @@ public:
 public:
     TypeOfExpression();
 
+    Snapshot snapshot() const;
+
     /**
      * Sets the documents used to evaluate expressions. Should be set before
      * calling this functor.
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 2cd859ecb9e4e18a15a2c163792d2ed9ac58b5da..a3759c7c9526f353248949945baebab58e4e9585 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -77,7 +77,7 @@ namespace Internal {
 class FunctionArgumentWidget : public QLabel {
 public:
     FunctionArgumentWidget(Core::ICore *core);
-    void showFunctionHint(Function *functionSymbol);
+    void showFunctionHint(Function *functionSymbol, const Snapshot &snapshot);
 
 protected:
     bool eventFilter(QObject *obj, QEvent *e);
@@ -94,6 +94,7 @@ private:
 
     QFrame *m_popupFrame;
     Function *m_item;
+    Snapshot m_snapshot;
 };
 
 class ConvertToCompletionItem: protected NameVisitor
@@ -212,9 +213,11 @@ FunctionArgumentWidget::FunctionArgumentWidget(Core::ICore *core)
     setMargin(1);
 }
 
-void FunctionArgumentWidget::showFunctionHint(Function *functionSymbol)
+void FunctionArgumentWidget::showFunctionHint(Function *functionSymbol,
+                                              const Snapshot &snapshot)
 {
     m_item = functionSymbol;
+    m_snapshot = snapshot;
     m_startpos = m_editor->position();
 
     // update the text
@@ -1023,7 +1026,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
             QTC_ASSERT(function, return);
 
             m_functionArgumentWidget = new FunctionArgumentWidget(m_core);
-            m_functionArgumentWidget->showFunctionHint(function);
+            m_functionArgumentWidget->showFunctionHint(function, typeOfExpression.snapshot());
         }
     } else if (m_completionOperator == T_SIGNAL || m_completionOperator == T_SLOT) {
         QString toInsert = item.m_text;