diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 03397a655adc2754a25737efc5b5269a9932f4f7..a78087d6a35eff98283ced6382a52d361d868a69 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -168,10 +168,10 @@ protected:
 
     bool isDeclSymbol(Symbol *symbol) const
     {
-        if (! symbol)
+        if (! symbol) {
             return false;
 
-        else if (symbol == _declSymbol) {
+        } else if (symbol == _declSymbol) {
             return true;
 
         } else if (symbol->line() == _declSymbol->line() && symbol->column() == _declSymbol->column()) {
@@ -349,6 +349,20 @@ protected:
         return false;
     }
 
+    virtual bool visit(EnumeratorAST *ast)
+    {
+        Identifier *id = identifier(ast->identifier_token);
+        if (id == _id) {
+            LookupContext context = currentContext(ast);
+            const QList<Symbol *> candidates = context.resolve(control()->nameId(id));
+            reportResult(ast->identifier_token, candidates);
+        }
+
+        accept(ast->expression);
+
+        return false;
+    }
+
     virtual bool visit(SimpleNameAST *ast)
     {
         Identifier *id = identifier(ast->identifier_token);