diff --git a/src/tools/cplusplus/generate-ast.cpp b/src/tools/cplusplus/generate-ast.cpp
index bbde757934c7d611031def385aa2985766f68e12..f4cc3ab678b8dfc3c3b9cd9760abaa8c83ff5269 100644
--- a/src/tools/cplusplus/generate-ast.cpp
+++ b/src/tools/cplusplus/generate-ast.cpp
@@ -1112,10 +1112,8 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
     for (DeclarationListAST *iter = xUnit->declaration_list; iter; iter = iter->next) {
         if (FunctionDefinitionAST *funDef = iter->value->asFunctionDefinition()) {
             if (const QualifiedNameId *qName = funDef->symbol->name()->asQualifiedNameId()) {
-                if (qName->nameCount() != 2)
-                    continue;
-                const QString className = oo(qName->nameAt(0));
-                const QString methodName = oo(qName->nameAt(1));
+                const QString className = oo(qName->base());
+                const QString methodName = oo(qName->name());
 
                 QTextCursor cursor(&cpp_document);