The Romanian capital, Bucharest, has seen one of its largest ever anti-government protests after a decree was passed that could free dozens of officials jailed for corruption.
A crowd of at least 150,000 was reported outside government offices late on Wednesday and rallies took place in other towns and cities.
Some protesters in the capital threw firecrackers and smoke bombs at police who responded with tear gas.
The decree was passed late on Tuesday.
The leftist government, led by Prime Minister Sorin Grindeanu of the Social Democratic Party (PSD), says it is needed to ease overcrowding in prisons.
But Mr Grindeanu’s critics say he is trying to release allies convicted of corruption.
Wednesday’s protests came hours after the EU warned Romania against “backtracking” in its efforts to beat corruption.
“The fight against corruption needs to be advanced, not undone,” said European Commission head Jean-Claude Juncker.
“We are following the latest developments in Romania with great concern.”
Protesters in Bucharest chanted “Resign” and “Thieves, thieves”.
“Our chances are small but it is important to fight,” said architect Gabriela Constantin.
Another protester, Nicolae Stancu, said: “We came to protect our country against criminals who tried to dismiss the rule of law in Romania; to protect our rights and interests, not their obscure interests.”
The emergency decree decriminalises several offences and makes abuse of power punishable by incarceration only if the sums involved are more than €44,000 (£38,000; $48,000).
One immediate beneficiary would be the PSD leader, Liviu Dragnea, who faces charges of defrauding the state of €24,000.
Others due for release include elected officials and magistrates.