What is really going on in politics? Get our daily email briefing straight to your inbox Sign up Thank you for subscribing We have more newsletters Show me See our privacy notice Invalid Email

John McDonnell has sparked a furious row after he refused to apologise for attacking a Tory MP's "stain of inhumanity".

The Shadow Chancellor was confronted on live TV today by Esther McVey - and the pair have serious history.

He repeated a joke on stage at a 2014 comedy gig about "lynching" the former employment minister, who was an architect of Tory welfare cuts.

He then refused to apologise last year in Parliament, saying he never made a genuine threat and she was "trying to make herself into a victim".

"The real victims are people such as David Clapson who starved to death" after his benefits were cut, he said at the time.

(Image: Peston on Sunday)

"There is nothing to apologise for, and I hope that on 7 May the electorate will remove the stain of inhumanity."

Today he faced Ms McVey, who lost her seat to Labour last year, across the sofa on ITV's Peston on Sunday at Labour's Liverpool conference.

He said he was simply "reporting what was shouted out at a public meeting" when he quoted an activist's complaint that "why aren't we lynching the b******?".

Asked if he wanted to apologise for that or for calling Ms McVey a "stain on humanity" - a different form from the words he used - he said he was expressing "honest anger".

Within minutes Labour MP Yvette Cooper hit out: "It's not OK. It's really, really not OK. He absolutely should have apologised.

(Image: Peston on Sunday)

"The idea of saying a woman MP, as Esther was at the time, could have been lynched is just wrong."

Ms McVey sat on and watched as the shadow chancellor said voters were fed up of spin and wanted politicians who "speak the truth".

He said he had "gone too far" in some cases but told ITV: "I was angry. Sometimes you need to express honest anger and that was about what this last government was doing to people with disabilities.

"It was appalling, to be frank, and sometimes it is better to be honest about how you feel.

(Image: Mirrorpix)

"At times, in Parliament in particular, it means using strong language but, actually, if it reflects your honest views, I think it is better to be honest than it is to be in any way deceptive.

"I think it is about making sure you express your views honestly and fairly as well, that's the most important thing.

"People have had enough of spin and triangulation. What they want is politicians who speak the truth."

Challenged about Ms Cooper's attack about "lynching" later, Mr McDonnell said: "She got it wrong. I did not say that. I did not say that.

"Let's be absolutely clear, she got that wrong. Completely wrong."