Hi Divy, > So, is it that the new gcc version does not allow directly using the protected variabled declared in parent class? I may be mistaken, but I think that the issue has to do with two-phased lookup. GCC 4.x implements two-phased lookup, as per ISO 14882. You could also have accessed c by: this->c ...or... std::priority_queue< T, std::vector<T>, PLess<T> >::c ...but I find the using statement to be the quickest & best solution. > (because that worked fine when I had gcc 3.4.3) GCC 3.4.3 did not implement two-phased lookup. (Or perhaps it was just that GCC 3.4.3 did not fully implement two-phased lookup.) I'm not sure of all the intricate details between... ADL (argument-dependent name lookup; aka Koenig lookup) OL (ordinary name lookup) FNI (friend name injection) two-phase lookup (aka non-dependent lookup)