diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 852150e7a860e3a4ac4d2ae1b67cba0909dc4bd5..03409b52c903c1f037b22837dfe74c4a4759332b 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -364,6 +364,34 @@ protected:
         return false;
     }
 
+    virtual bool visit(ParameterDeclarationAST *ast)
+    {
+        for (SpecifierAST *spec = ast->type_specifier; spec; spec = spec->next)
+            accept(spec);
+
+        if (DeclaratorAST *declarator = ast->declarator) {
+            for (SpecifierAST *attr = declarator->attributes; attr; attr = attr->next)
+                accept(attr);
+
+            for (PtrOperatorAST *ptr_op = declarator->ptr_operators; ptr_op; ptr_op = ptr_op->next)
+                accept(ptr_op);
+
+            // ### TODO: well, not exactly. We need to look at qualified-name-ids and nested-declarators.
+            // accept(declarator->core_declarator);
+
+            for (PostfixDeclaratorAST *fx_op = declarator->postfix_declarators; fx_op; fx_op = fx_op->next)
+                accept(fx_op);
+
+            for (SpecifierAST *spec = declarator->post_attributes; spec; spec = spec->next)
+                accept(spec);
+
+            accept(declarator->initializer);
+        }
+
+        accept(ast->expression);
+        return false;
+    }
+
 private:
     QFutureInterface<Utils::FileSearchResult> *_future;
     Identifier *_id; // ### remove me