diff --git a/src/libs/cplusplus/TypeOfExpression.cpp b/src/libs/cplusplus/TypeOfExpression.cpp
index e5cd8579ed0b855e8d49956d1318e079ff6a3c9d..2177cdd9306712ab63f36f6b4c9ed520f9ad3bdf 100644
--- a/src/libs/cplusplus/TypeOfExpression.cpp
+++ b/src/libs/cplusplus/TypeOfExpression.cpp
@@ -96,7 +96,12 @@ QList<LookupItem> TypeOfExpression::operator()(ExpressionAST *expression,
     m_lookupContext.setBindings(m_bindings);
 
     ResolveExpression resolve(m_lookupContext);
-    return resolve(m_ast, scope);
+    const QList<LookupItem> items = resolve(m_ast, scope);
+
+    if (! m_bindings)
+        m_lookupContext = resolve.context();
+
+    return items;
 }
 
 QString TypeOfExpression::preprocess(const QString &expression) const