Thousands of Libyans rallied against militias in the tense city of Benghazi on Friday, drowning out a protest by radical Salafists furious over a film and cartoons deemed offensive to Islam.
"No to armed formations" and "Yes to the Libya army" read banners raised by protesters gathered at the city's Tibesti Hotel before marching to Al-Kish Square, close to the barracks of several militia brigades.
"Our law is God's law, not the law of the jungle," women chanted.
Banners also paid tribute to US ambassador Chris Stevens, who was killed along with three Americans on September 11 in what the White House now calls a terrorist attack on the US mission in Benghazi.
"Libya lost a friend" and "We want justice for Stevens," signs read.
Organisers had called the march to demand that the central government in Tripoli tame the armed groups that have retained huge power since last year's Western-backed uprising that overthrew Moamer Kadhafi.
They demanded the withdrawal of powers conferred on the militias and urged the national congress to pass legislation criminalising them and codifying the law on bearing arms.
The organisers also called for the withdrawal of all armed groups from state buildings and institutions and full support for measures to revitalise the police and army.
A rival protest in the same square by jihadist group Ansar al-Sharia drew hundreds of people waving black and white flags inscribed with the Muslim declaration of faith.
"There is no God but God," they chanted, as well as "Obama is the enemy of God," referring to US President Barack Obama.
The militia, which rejects democracy and refuses to join security forces which they see as tainted by the presence of Kadhafi loyalists, raged against a film made in America mocking Islam and French cartoons depicting the Prophet Mohammed.
"If defending our prophet is terrorism then we are terrorists" read signs in their protest.