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
Simon Cowell says he "felt like a bit of an idiot" after learning the Britain's Got Talent winner used a stunt double dog during the final.
An advert for luxury fashion brand Yves Saint Laurent has been banned for featuring a model with a visible rib cage and stick-thin legs.
Every school rated as inadequate by Ofsted will be turned into academies under new laws, the Education Secretary has announced.