Henley MP Boris Johnson has appeared to tie himself in knots over his support for the smoking ban.

On Wednesday, Mr Johnson called for a referendum on the ban on smoking in public places, which was introduced by the Government last July.

The Tory MP, who is running to become London mayor, told a webchat with a national newspaper that any ban should be a matter for local councils and not central Government.

He said: "What is the point of having local democracy if we don't leave decisions like this to a local level?

"If I had my way, we would have an online referendum in London about whether to give boroughs back the power to give discretion over smoking to pubs and clubs."

Yesterday, however, he executed a swift u-turn.

In a statement of "clarification" released by his campaign team, Mr Johnson said: "Personally I do not like smoking and believe that pubs and clubs are better places since the ban came in.

"My point was that I believe laws like the smoking ban should have been decided at a local level rather than a national level. This is entirely consistent with my previous stance on the subject."

He added: "It is not within the power of the mayor to have a referendum, nor will I be lobbying for the power to grant one."

The change of heart came after it emerged that Mr Johnson received up to £10,000 to give a speech to the tobacco industry last year.

Mr Johnson has announced he will give up his Oxfordshire seat if he beats current mayor Ken Livingstone in the election on May 1.