I forgot to say 'thanks James', thanks. Well, spurred on by the whimsy that I need a solution to the problem (however dolorous), I experimented. I've commented most everything at least once and the net effect is that only the 'operator<<' gets a nasty message. I've checked the include files that I've written and they all seem clean of heresies. The 'operator>>' files are unaffected, and with them gone, I still get an error on the 'operator<<' function.
The only thing that I can think of, and I think it remote, is that the functions refer to a public structure internal to a class. The 'operator>>' functions refer to their respective classes. Again, I've removed all of my friends but one 'operator<<' and this gets the error. Now I think I know C++ (although, to be honest, I have strong, personal, doubts) and I can't think what I missed. However, the initial statement still holds, the second diagnostic messages adds no clarity and seems redundant. Further, if there was a cause of conflict with a redefinition, it would be useful to include the original conflicting declaration. Perhaps something like: <><line no>: error: redefinition of function at <><line no> illegal. note: istream& operator>> (bool& val ); istream& operator>> (short& val ); o o o the note: stuff is from cplusplus.com @ http://cplusplus.com/reference/iostream/istream/operator%3E%3E/ So, a concrete suggestion at to messaging and an individual first, a puzzler. I really need help on the puzzler. thanks art