diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 4908b1c65e3e2346769e9926b215b025b9de7665..b6a9d62a6dcc6e2fc32fb504ea7e5a684ee4c682 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -518,6 +518,14 @@ void CreateBindings::lookupInScope(const Name *name, Scope *scope,
             item.setDeclaration(s);
             item.setBinding(binding);
 
+            if (s->asNamespaceAlias() && binding) {
+                ClassOrNamespace *targetNamespaceBinding = binding->lookupType(name);
+                if (targetNamespaceBinding && targetNamespaceBinding->symbols().size() == 1) {
+                    Symbol *resolvedSymbol = targetNamespaceBinding->symbols().first();
+                    item.setType(resolvedSymbol->type()); // override the type
+                }
+            }
+
             if (templateId && (s->isDeclaration() || s->isFunction())) {
                 FullySpecifiedType ty = DeprecatedGenTemplateInstance::instantiate(templateId, s, _control);
                 item.setType(ty); // override the type.