Surely I'm not the first person to come across this problem?

-- CM