diff --git a/src/libs/cplusplus/Icons.cpp b/src/libs/cplusplus/Icons.cpp
index 51a7bea017caca4f94d4ffae37d17c1881fa5f34..ade66db3024042c63194c3259d3fffa5dd91e5dc 100644
--- a/src/libs/cplusplus/Icons.cpp
+++ b/src/libs/cplusplus/Icons.cpp
@@ -74,6 +74,11 @@ QIcon Icons::macroIcon() const
 
 Icons::IconType Icons::iconTypeForSymbol(const Symbol *symbol)
 {
+    if (const Template *templ = symbol->asTemplate()) {
+        if (Symbol *decl = templ->declaration())
+            return iconTypeForSymbol(decl);
+    }
+
     FullySpecifiedType symbolType = symbol->type();
     if (symbol->isFunction() || (symbol->isDeclaration() && symbolType &&
                                  symbolType->isFunctionType()))