The bill, which passed on the second reading by 310 votes to 120, reflects changes proposed by President Vladimir Putin. The Russian leader had voiced his disapproval at the preceding version as passed by deputies in their first reading at the end of March.
Originally, the bill would have banned Russians from holding protest pickets or rallies on or near property belonging to the presidential administration, as well as all federal, regional, or local government buildings. In addition, demonstrators would have been blocked from assembling on public-access roads or highways and bridges as well as near schools, oil installations, or foreign embassies and international organizations.
Critics, who were joined by Putin, said the legislation would essentially have allowed the authorities to block any protest they wished -- effectively muzzling people's right to free speech.
The revised version -- as approved on 28 May -- will ban protests on or around presidential administration buildings as well as courts and jails. But government buildings, university campuses, hospitals, and foreign embassies are back as legitimate protest sites.
Deputy Andrei Isaev, of the pro-Kremlin Unified Russia bloc, which holds a two-thirds majority in the Duma, praised the reworded law. There are no ideal laws," he said. "But we can see that today, in accordance with this law, you can freely and democratically organize demonstrations, marches, and pickets and quickly react to events happening in our lives."
But opposition party legislators -- including the Communists, the nationalist Motherland faction and the ultranationalist Liberal Democrats -- all voted against the revised bill, calling it a major infringement of rights. The main issue for them is that the bill -- in both its old and new versions -- will force demonstrators to seek permission for their protests from the authorities. Currently, demonstrators are only obliged to give notice of their plans -- without seeking prior approval.
That, according to independent deputy Sergei Popov, is a crucial difference. It places ultimate power in the hands of the bureaucrats. And that power, he argued, could be easily misused. "The bill, as it was passed in its current form, creates a range of ways for bureaucrats to prevent the holding of demonstrations, marches, meetings, and pickets," he said. "And bureaucrats will of course use the means at their disposal. Unfortunately, the government is not democratic. It gives orders from the top and these are carried out at any price. And the possibility of seeking redress in court has been eliminated."
Another legislator, Oleg Shein of the Motherland faction, went even further, noting that the legislation could be used to muzzle basic democratic rights, such as the freedom of trade union members to assemble. "It is absolutely clear that if a trade union holds a meeting, this is an internal matter for this particular civic association," he said. "But we are establishing a norm under which a civic association, a trade union or a party holding a meeting of its own members can have that meeting declared illegal."
Communist Deputy Sergei Reshulskii expressed similar concerns. "In all of the law's provisions we can see one central idea: bureaucrats, the state apparatus, the government will control everyone," he said.
Despite opposition protests, however, final passage of the bill in its current form is highly likely. Democracy advocates can be thankful that Putin stepped in to water down the bill's excessively restrictive measures. Given the Duma's current political makeup -- with two-thirds of deputies voting in sync with the Kremlin, the opposition simply lacks the numbers to block any legislation favored by the president.
(RFE/RL's Russian Service contributed to this report.)