The following produces internal error 90. This is with the 1.0.2 release. #include <vector> template<class T> struct A { struct B; struct C; typedef vector<C*> D; }; template<class T> struct A<T>::B { D::iterator c; B() {} }; It does not produce an error if A is not a template class. --Lee Hetherington