diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/AbstractCPPClassSpecializationScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/AbstractCPPClassSpecializationScope.java index 070c5a6224d..0d40d06d37f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/AbstractCPPClassSpecializationScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/AbstractCPPClassSpecializationScope.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2012 IBM Corporation and others. + * Copyright (c) 2005, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -106,11 +106,12 @@ public class AbstractCPPClassSpecializationScope implements ICPPClassSpecializat IScope classScope = specialized.getCompositeScope(); if (classScope == null) return IBinding.EMPTY_BINDING_ARRAY; - - IBinding[] bindings= classScope.getBindings(lookup); + + IBinding[] bindings= classScope.getBindings(lookup); IBinding[] result= null; for (IBinding binding : bindings) { - if (binding == specialized) { + if (binding == specialized || + (binding instanceof ICPPClassType && specialized.isSameType((IType) binding))) { binding= specialClass; } else { binding= specialClass.specializeMember(binding, lookup.getLookupPoint());