Thousands of Russian nationalists have rallied in Moscow against the migrants they accuse of pushing up the crime rate and taking their jobs.
The protest took place on Unity Day, a national holiday established in 2005 to replace commemorations of the Bolshevik Revolution.
Many demonstrators carried Russian imperial flags. One group displayed a banner reading "Young People Against Tolerance".
Animosity is strong among nationalists against migrants from the former Soviet Central Asian republics and against non-Slavs from the largely Muslim Russian Caucasus region. Central Asian migrants are widely employed in big cities in construction and do other low-paid jobs that Russians are not eager to do.
The protesters, from tough-looking youths and neo-Nazis to older people, marched in a quiet southeast neighborhood along a tree-lined boulevard.
The crowd has grown more middle-class since 2005 when the first march was held. A string of well-publicised crimes committed by migrants has embittered many Muscovites who see police as unwilling to persecute the perpetrators.
Authorities have largely ignored the flow of Central Asians migrants, neither trying to integrate the newcomers nor cut down on migration.
While some of the onlookers were displeased, other locals said they were supporting the march.
Yelena Yermakova, a 56-year-old who was taking a walk with her daughter and two grandchildren, said there are too many migrants in Moscow and they are "getting cheeky".
About 30 people were detained at the rally for using Nazi slogans and symbols as well as for other misdemeanors, Moscow police said.
Nationalist rallies were held in other Russian cities as well, including St Petersburg, Kazan and Irkutsk.
A UN report in September said Russia has about 11 million migrants. Russia is visa-free for all Central Asian republics, so most of the migrant workers are in Russia legally.