diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index dd6f996fa1e42753ce4ec6e0d17c71d592123ef6..b3103a07c75e295bfba110f42decaaf12673cb8a 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -570,9 +570,8 @@ bool ResolveExpression::visit(MemberAccessAST *ast)
 
 ClassOrNamespace *ResolveExpression::findClass(const FullySpecifiedType &originalTy, Scope *scope) const
 {
-    ClassOrNamespace *binding = 0;
-
     FullySpecifiedType ty = originalTy.simplified();
+    ClassOrNamespace *binding = 0;
 
     if (Class *klass = ty->asClassType())
         binding = _context.classOrNamespace(klass);
@@ -580,6 +579,9 @@ ClassOrNamespace *ResolveExpression::findClass(const FullySpecifiedType &origina
     else if (NamedType *namedTy = ty->asNamedType())
         binding = _context.classOrNamespace(namedTy->name(), scope);
 
+    else if (Function *funTy = ty->asFunctionType())
+        return findClass(funTy->returnType(), scope);
+
     return binding;
 }