The Duma (lower house of parliament) in Russia has approved a bill which sharply increases fines for violations of laws on public rallies.
The bill boosts fines from 5000 rubles ($US152) at present to 300,000 roubles for participants and up 600,000 roubles for officials.
It also restricts where public protests can be held and what form they can take.
Opposition members unsuccessfully tried to delay the vote by submitting nearly 400 amendments.
The bill was adopted after more than 11 hours of heated discussions by a 241-147 vote.
Critics have accused the ruling United Russia party of destroying freedoms.
The bill is now expected to be debated in the upper house on Wednesday.
It will then require President Vladimir Putin's signature and could become law before a planned anti-government street protest in Moscow next week.
The BBC reports there is little doubt the legislation will be adopted.
Mr Putin recently publicly expressed his support for the bill.
"We must shield our people from radical actions," he said.
Russia has seen a number of huge anti-government protests following parliamentary elections in
December, which the opposition says were rigged.
Other protests have been held since Mr Putin's inauguration as president for the third time on 7 May.