Police clashed Saturday with activists who took to the streets of Berlin to shout down thousands of anti-migrant demonstrators protesting against Chancellor Angela Merkel's open-door refugee policy.
More than 40 people were arrested and one officer was lightly wounded, police said.
The scuffles erupted after police broke up a sit-in by counter-demonstrators, some of whom tried to break through the barriers separating them from the anti-migrant march. Officers also intervened to stop angry exchanges between rival demonstrators.
Police said around 5,000 people turned out for the main anti-migrant protest, which was organised by the eurosceptic, populist-nationalist Alternative for Germany (AfD) party under the banner "Asylum Has Its Limits -- Red Card for Merkel".
"We are demonstrating against the asylum chaos caused by Angela Merkel," AfD member and European Parliament deputy Beatrix von Storch said at the rally.
Participants at the demo waved German flags and chanted "Merkel must go" and "Traitor to the people".
Five counter-protests in support of migrants were attended by a total of around 800 people. Organisers had expected a turnout of several thousand.
More than 1,100 police were deployed in the capital to prevent trouble between the rival demonstrators.
Merkel has faced a growing backlash over her welcoming stance towards refugees fleeing war and persecution as Germany, Europe's top economy, faces a record influx of up to one million asylum seekers this year.