Tens of thousands of Muscovites staged Russia's biggest political protest for years on Saturday, rallying to demand free city-wide elections in spite of a government crackdown.
Hours before the demonstration, police detained one of the leading opposition activists, Lyubov Sobol, who is on a hunger strike. Masked men raided her office and the police said they had information she and other activists were plotting a "provocation" at Saturday's rally.
Protesters filed through metal detectors with flags and banners, staging their fourth major protest in a month calling for opposition-minded candidates forced off the ballot to be allowed to run in a city election next month.
Moscow officials authorised Saturday's rally, unlike last weekend when police detained more than 1000 people, sometimes violently, at an unauthorised demonstration.
The White Counter monitoring group said it had counted 40,000 people at the rally. Police estimated turnout at 20,000. Russia has not seen sustained opposition demonstrations on this scale since 2011-2013 when protesters took to the streets against perceived electoral fraud.
Investigators have opened criminal proceedings against about a dozen people for what they say was mass civil unrest at earlier protests, a crime that carries a heavy jail term. They have also opened a money-laundering investigation into Kremlin critic Alexei Navalny's anti-corruption foundation.