Boris Johnson has condemned "sneering" at Starbucks after the firm volunteered to pay millions of pounds more tax.
The London Mayor defended companies like the coffee chain who had been minimising their bills to the Exchequer, insisting they had a duty to shareholders.
Speaking on Sky News's Murnaghan programme, Mr Johnson admitted that Starbucks had got into a "hell of a mess".
But he said:
Imagine that you are the corporate finance director of one of these companies.
Your job is to look at the law as it stands. Your fiduciary duty to your shareholders is to minimise your tax exposure.
It is not to say, 'this looks pretty bad, we had better write a huge cheque to the Government ex-gratia and show that we are good citizens'.
Companies do not work like that.
Now that Starbucks has stepped up to the plate and announced they are going to be making this payment I think rather than everybody sneering at them people should welcome that.
My point is it is a bit unfair to bash the companies and then sneer at them when they try to do good.
More top news
Pensioner Ronald Volante was dead by the time paramedics got to him after his 999 call was classed as 'low priority'.
Here's what we know about the prison riot that has left as many as 50 people dead in north-eastern Mexico.
Ola Jordan broke her leg and Marcus Brigstocke couldn't work for a year after he injured himself - but they'd both go back on the show.