Don't forget that redeclarations needn't be at global scope, and the composite type only applies where the redeclaration is visible; as soon as it goes out of scope the type of the visible declaration is the semantic type. Neil.