Well, if a type is incompatible with itself, it looks very much like a bug. Most probably, compiler routine which resolves unit names, first creates a list of units, found directly, afterwards it searches once more for units, combining name space provided in -FNxxxx and unit name in "uses" clause, but then forgets to test if this unit was already found, and ends up with two distinct items for the same unit.