Tory leader David Cameron has said he will not fire openly gay Tory MP Alan Duncan for saying MPs were being “treated like s**t” in the aftermath of the expenses scandal.

Duncan was secretly filmed making the remarks in June. He also said that MPs were now being forced to live on “rations”.

Today, Cameron told reporters in his Oxfordshire constituency that he would not sack the MP but added that he had made a “bad mistake”.

He said: “I spoke to Alan Duncan yesterday and made it clear in no uncertain terms that when it comes to the mess of expenses, the words we use, just as the actions we take, have got to demonstrate completely that we share the public’s real fury at what went on in parliament.

“Alan made a bad mistake and he has acknowledged that, he has apologised and withdrawn the remarks… I think we should leave it at that.”

According to reports, insiders suggested that he could be fired due to Cameron’s tradition of coming down heavily on those who step out of line.

Duncan is one of two Tory MPs on the House of Commons Commission, which has been tasked with clearing up parliament following the scandal.

He quickly apologised yesterday, saying the remarks had been made “in jest”.

He has put his foot in it a number of time recently. In April, he joked that he wanted to kill Miss California, Carrie Prejean, on Have I Got News For You after she publicly disagreed with gay marriage. On the same show, he mocked Jacqui Smith for claiming for her husband’s porn films and subsequently had to apologise for his own expenses claims.