Thanks SparkE.
When the service battery goes, the system dumps all stored codes so there's no record of what went wrong. I'll pass your suggestions on to the mechanic. I've given up on the dealer - they don't know, don't care, and just run up the bill.
Thanks for your suggestions.