Thousands of people have taken to the streets in the German city of Hamburg as a neo-Nazi demonstration drew a larger counter-demonstration, with clashes breaking out between left-wing protesters and police in one part of the city.
Around 10,000 people gathered at the central rally on City Hall Square, under the slogan "Hamburg shows its true colours," according to a police estimate.
The Neo-Nazi parade, called "The day of the German Future", was held at the same time, with police expecting an estimated 1,000 participants.
In the eastern suburb of Wandsbek, where left and right-wing protesters had gathered, clashes broke out with police.
Several police were injured during the melee, which saw the leftists set fire to barricades and use pyrotechnics, bottles and stones to attack police and the far-right demonstrators.
Sandra Levgruen, a police spokeswoman, said the leftists tried to stop the far-right rally by erecting barricades and setting them ablaze.
Police stepped in and surrounded about 700 counter-protesters who had set up barricades to prevent a neo-Nazi march from passing.
Water cannons were used by police after some of the protesters threw stones and fireworks at them and set rubbish bins and barricades on fire, police officials said.
One participant tweeted: "At Eilbeker road 500-700 anti-fascists are making the streets unpassable 4 big barricades."
Hamburg Mayor Olaf Scholz told the main rally, to overwhelming applause: "We stand together. We are proud to be a cosmopolitan city."
The demonstration, organised by a broad coalition of politicians from all political parties, trade unions, social organisations and churches, was aimed to send a strong signal to the extreme right that Hamburg is a tolerant city.