Even though the c== compilers I tried enforce it, I have been unable to find any EXPLICIT requirement in the c++ ARM that if a class has multiple occurrances (not all virtual) of a base class, then EVERY occurrance of the base class must be indirect. There are, of course, obvious ambiguity problems if a direct base class is also an indirect base class.