diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 5f883feab9d43874410b2af3b6872099791fba19..1a510b6bd2dfc7b5c838c61c9256efad30dae576 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -794,6 +794,21 @@ bool CreateBindings::visit(BaseClass *b)
     return false;
 }
 
+bool CreateBindings::visit(UsingDeclaration *u)
+{
+    if (u->name()) {
+        if (const QualifiedNameId *q = u->name()->asQualifiedNameId()) {
+            if (const NameId *unqualifiedId = q->unqualifiedNameId()->asNameId()) {
+                if (ClassOrNamespace *delegate = _currentClassOrNamespace->lookupType(q)) {
+                    ClassOrNamespace *b = _currentClassOrNamespace->findOrCreateType(unqualifiedId);
+                    b->addUsing(delegate);
+                }
+            }
+        }
+    }
+    return false;
+}
+
 bool CreateBindings::visit(UsingNamespaceDirective *u)
 {
     if (ClassOrNamespace *e = _currentClassOrNamespace->lookupType(u->name())) {
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h
index 060d7ab0066ddeb50c9054d238974d1b1789ce6d..195fea8275f98b81ba752482af5c26ec5a08c017 100644
--- a/src/libs/cplusplus/LookupContext.h
+++ b/src/libs/cplusplus/LookupContext.h
@@ -170,6 +170,7 @@ protected:
     virtual bool visit(Function *);
     virtual bool visit(BaseClass *b);
     virtual bool visit(UsingNamespaceDirective *u);
+    virtual bool visit(UsingDeclaration *u);
     virtual bool visit(NamespaceAlias *a);
 
     virtual bool visit(ObjCClass *klass);