Hi, I have the following code: file1.h template <class T> class a; template <class T> class b { friend class a<T>; public: b() {} }; template <class T> class c; template <class T> class a { friend class c<T>; ... file2.h #include "file1.h" class d : public b<d> {} And I am getting the following error in this last line (using gcc 4.1.1): error: expected template-name before '<' token error: expected `{' before '<' token error: expected unqualified-id before '<' token This code was working with gcc 3.3.5. Can you give me an ideia how to correct this????? Thank you and best regards Mário Patricio