I get the following error when using g++ 4.0.2: g++ -c -pipe -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -DUSE_LIB64_PATHES -w -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -DUSE_LIB64_PATHES -I/usr/lib/qt3/mkspecs/default -I. -I../applied_math -I../computational_geometry -I../finite_elements -I../interfaces -I../pde_operators -I../solver -I../generic_finite_volumes -I../main_library -I../two_phase_flow -I../interrelations -I/usr/include -I/usr/X11R6/include -o obj/LinearDiffusionAlgorithm.o LinearDiffusionAlgorithm.cpp LinearDiffusionAlgorithm.h:66: error: expected nested-name-specifier LinearDiffusionAlgorithm.h:66: error: expected ?;? before ?*? token This piece of code looks as follows: template<typename fT,stl_index dim> class LinearDiffusionAlgorithm { typename A<fT,dim>* B; // this is line 66 }; This compiles fine using Intel c++ 8.0 compiler but not with g++ 4.0. Can anybody give me a hint of what is going wrong? Many thanks in advance, cheers, Dim