I am testing a library build with 4.0 and am having a strange issue with a typdef that I cannot explicitly tie to a c++ spec requirement or point. This is not the same code but the same sequence as the classes are a little large: file1.h: typedef ReferenceCountedPointer< class VARArea > VARAreaRef; class VARArea : public ReferenceCountedObject { .. }; file2.h: #include "file1.h" VARAreaRef area; at the point gcc errors saying that VARAreaRef does not name a type. It didn't error when VARAreaRef was used in file1.h later in the class definition. corey