Several thousand anti-racism protesters have rallied in the central Italian town of Macerata, one week after a far-right activist shot and wounded six people he thought were migrants.

The drive-by attack followed the arrest of a Nigerian suspected of murdering and dismembering a local woman.

The town's mayor said comments on social media had fed a climate of hatred before the shootings.

Italy votes in national elections on 4 March, with immigration a key issue.

More than 500,000 people have reached Italy since 2014, most fleeing war and poverty in Africa, the Middle East and South Asia. Many are being housed in centres across the country.

Mayor Romano Carancini had asked for the demonstration to be cancelled to maintain calm in the town but the regional authority gave the go-ahead, AFP news agency reports.

Schools remained closed, a church service was cancelled and shops closed at midday over fears clashes could break out.

On Thursday evening there were clashes when a group of several dozen activists from the far-right group Forza Nuova demonstrated against immigration and confronted police with fascist salutes.

The gun attack saw shots fired in two locations that figured in an investigation into the murder of Pamela Mastropietro, 18, whose body was found dismembered and hidden in two suitcases a few days earlier.

At a court hearing on Tuesday, Luca Traini confessed to firing the shots, saying he had been listening to a report about her death on his car radio.

He reportedly made a fascist salute when he was captured. Police found a gun in his car.

He had taken part in regional elections for the anti-immigration Northern League last year.

Right-wing politicians have been using Pamela Mastropietro's killing to promote their anti-migrant message as part of their campaign for next month's election.