Somali troops have ended the siege of a Mogadishu hotel which was taken by al-Shabab militants on Friday.
At least 14 people were killed and more wounded after US-trained Somali special forces soldiers stormed the building.
Journalists at the scene say they have seen the bodies of both militants and soldiers.
Islamist al-Shabab is linked to al-Qaeda and has been battling the UN-backed government in Somalia since 2006, frequently targeting civilians.
Hussein Ali, a member of Mogadishu’s ambulance service, told the Associated Press that there were 28 wounded.
The Somali ambassador to Switzerland, Yusuf Baribari, is among the dead.
Other diplomats escaped by jumping from windows.
The attack began when a suicide bomber detonated his explosives-packed car outside the building.
Hotels in Mogadishu are often targeted by al-Shabab militants, who were driven from the city several years ago but still control southern rural areas.
An al-Shabab spokesman told the BBC that the Maka al-Mukarama hotel was attacked because of its popularity with government officials.
“We don’t consider it to be a hotel – it’s a government base,” he said.
A car bomb went off outside the hotel earlier this month – an attack also claimed by al-Shabab.
Many politicians and businessmen stay at the hotel as it is on the main road linking the presidential palace to the city’s airport.
Somalia has been ravaged by conflict for more than two decades.
But thousands of Somalis have been returning from abroad to help rebuild the country as security has improved in recent years.
African Union troops have been helping the UN-backed government retake territory from the militants.