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
The president-elect also warned US companies they would face "retribution" for setting up their business operations abroad.
Penalties of £100 or a court fine of up to £1,000 can now be handed to anyone caught lighting up in a private vehicle with someone under 18.
Bodies are being buried in backyards and overwhelming morgues as officials try to find another plot of land to lay them to rest.