In 2003, McDonnell attended a meeting to commemorate Irish republican Bobby Sands and said: "It's about time we started honouring those people involved in the armed struggle. It was the bombs and bullets and sacrifice made by the likes of Bobby Sands that brought Britain to the negotiating table."
He has come under renewed criticism this week since new Labour leader Jeremy Corbyn appointed him shadow chancellor, and was forced to apologise for his past remarks on the BBC One show, claiming he was just trying to help the peace process in Northern Ireland.
"If I gave offence, and I clearly have, from the bottom of my heart I apologise," said McDonnell.
"I should not have said the issue about the honouring. What I tried to do for both sides is to give them a way out with some form of dignity otherwise they wouldn't lay their arms down.
"I accept it was a mistake to use those words, but actually if it contributed to saving one life or prevented someone else being maimed it was worth doing because we did hold on to the peace protest – there was a real risk of the republican movement splitting and some of them continuing the armed process."
McDonnell also apologised for joking in 2010 that he would like to go back in time and "assassinate Thatcher".
"It was an appalling joke," McDonnell told the Question Time audience. "It's ended my career in stand-up, let's put it that way, and I apologise for it as well."