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
Over 2,000 People's Climate March protests have taken place in 166 countries ahead of a major UN conference on climate change.
On English votes for English laws Ed Miliband is damned if he does and damned if he doesn't.
School fees, pricey private medical care and the fear of interest rate rises mean even those on £200,000 are feeling the pinch.