Around 3,000 people gathered in the Swiss capital, Bern, on Saturday to demonstrate against the ongoing conflict in Lebanon and the Palestinian crisis.
They also called on Switzerland to stop its military collaboration with Israel and other countries in the region.
This includes the purchase of a telecommunications system from Israel, part of the latest Swiss army procurement programme.
Protestors said violence against civilians in Lebanon, the Palestinian territories and in Israel should stop to enable proper negotiations on ending the conflict.
A solution also needed the application of international humanitarian law, they said.
The attitude of the Swiss cabinet was condemned as too passive. This comes after a special cabinet session earlier this week where ministers controversially agreed to adopt a low profile on the conflict.
Foreign Minister Micheline Calmy-Rey, who had previously taken a strong line, said Switzerland – the depositary state of the Geneva Conventions – would now limit itself to humanitarian affairs.
The demonstration, which the authorities said passed off peacefully, was organised by the Green Party and the Group for Switzerland without an Army, as well as other organisations.
It follows on from another protest of around 800 people just over a week ago in Bern, which was supported by Lebanese and Palestinian groups as well as peace activists.
Meanwhile, the Swiss foreign ministry said on Friday that all Swiss nationals trying to leave southern Lebanon were now in a "safe zone". It added that only a dozen people had decided to remain in the region.
According to the ministry, the last 20 Swiss to be evacuated out of the country are due to arrive in Switzerland on Saturday evening.
The tense situation continues in the region. On Saturday the United Nations called for a three-day truce to let humanitarian aid enter Lebanon.
But Israel has rejected the request, saying that a humanitarian corridor was open.
United States Secretary of State Condoleezza Rice has returned to the region and is expected to lobby for a UN Security Council resolution that would lead to an international force being deployed in southern Lebanon.
swissinfo with agencies
The crisis between Israel and the Hezbollah Islamic militant group was triggered after Hezbollah captured two Israel soldiers on July 12.
The conflict is now in its 18th day and threatens to continue.
All Swiss nationals who have been trying to leave southern Lebanon since July 14 are now in a "safe zone", says the Swiss foreign ministry.
Lebanon said on Saturday an Israeli attack on fuel tanks at a power plant near the coast two weeks ago had created a major environmental disaster.