Thanks to everyone. The rock has dropped. The answer is quoted below:
"My best guess is that a header file is included twice, and lacks guards, hence the message is correct: the function is being defined twice, from the same source location." I had put my friends following my 'include guard'. As we all know, when your guard is down you can get sucker-punched. Although you should never try to teach an old dog new tricks, with luck and a good tail wind this will never happen again. thanks art PS: You are now all my best friend. Sorry.