diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp
index 66dc226e4d7efd0bc33982a8c49f77f1a98db62d..f32e6002ddefdef1598fd11fd440c8f3ca884fd6 100644
--- a/src/plugins/cppeditor/cpphoverhandler.cpp
+++ b/src/plugins/cppeditor/cpphoverhandler.cpp
@@ -222,6 +222,9 @@ static FullySpecifiedType resolve(const FullySpecifiedType &ty,
         if (resolvedName)
             *resolvedName = nsTy->name();
 
+        if (resolvedSymbol)
+            *resolvedSymbol = const_cast<Namespace *>(nsTy);
+
     } else if (const Class *classTy = ty->asClassType()) {
         if (resolvedName)
             *resolvedName = classTy->name();
@@ -233,14 +236,23 @@ static FullySpecifiedType resolve(const FullySpecifiedType &ty,
         if (resolvedName)
             *resolvedName = fwdClassTy->name();
 
+        if (resolvedSymbol)
+            *resolvedSymbol = const_cast<ForwardClassDeclaration *>(fwdClassTy);
+
     } else if (const Enum *enumTy = ty->asEnumType()) {
         if (resolvedName)
             *resolvedName = enumTy->name();
 
+        if (resolvedSymbol)
+            *resolvedSymbol = const_cast<Enum *>(enumTy);
+
     } else if (const Function *funTy = ty->asFunctionType()) {
         if (resolvedName)
             *resolvedName = funTy->name();
 
+        if (resolvedSymbol)
+            *resolvedSymbol = const_cast<Function *>(funTy);
+
     }
 
     return ty;