Prince Charles has made a diplomatic gaffe on the eve of his wedding, by shaking hands with Zimbabwean President Robert Mugabe at the Pope's funeral.
Prince Charles was seated one place away from Mr Mugabe
The prince was "caught by surprise" when Mr Mugabe leaned over to greet him, Clarence House said.
Mr Mugabe sidestepped a European Union travel ban to attend the funeral service in the Vatican.
Some politicians condemned Prince Charles' greeting as "stupid" and "not very sensible".
Opponents of Mr Mugabe also condemned his presence at the funeral, with one Euro MP describing it as a "flagrant breach of the EU travel ban".
Mr Mugabe was able to get around the ban because his destination - the Vatican - was an independent sovereign state.
Italy also has a long-standing agreement, known as the Concordat, to allow visitors to the Vatican to cross Italian territory, because the Papal state has no airport.
This meant Mr Mugabe was not in breach of the ban by travelling into Italy.
Prince Charles was seated one place away from the Zimbabwean President during the funeral.
A Clarence House spokesman said the prince "finds the current Zimbabwean regime abhorrent" and "was not in a position to avoid shaking Mr Mugabe's hand".
The spokesman added: "He has supported the Zimbabwe Defence and Aid Fund which works with those being oppressed by the regime.
"The prince also recently met Pius Ncube, the Archbishop of Bulawayo, an outspoken critic of the government."
A Foreign Office spokesman said seating arrangements at the funeral were made by the Vatican.
But Labour MEP Glenys Kinnock, who has called for the EU to get tougher with the Mugabe regime, said shaking his hand was not "sensible".
She added: "I am sure that by now Prince Charles regrets shaking Mugabe's hand.
"However, this is yet another failure of the establishment, of people with power and responsibility in the international community, to be sensitive enough about how to respond to this man."
MEP Richard Corbett said Prince Charles should have refused to shake Mr Mugabe's hand.
He said: "This was a golden opportunity to deliberately and very visibly refuse to shake hands with this man.
"To fail to do so was, frankly, stupid."
British Foreign Secretary Jack Straw was also criticised when he shook hands with Mugabe at a United Nations summit in New York last year.
Mr Straw defended his actions saying the serious disagreement between the two countries did not justify being "discourteous or rude".