British Prime Minister Theresa May's Conservative party fared better than expected in local elections in England, early results on Friday showed, in her first test since losing her parliamentary majority last year.
The party held on to key London councils despite a big push by the main opposition Labour party, which admitted its results so far had been "mixed".
The UK Independence Party (UKIP), which has seen its support collapse since the 2016 vote for Brexit, were all but wiped out, while the pro-European Union Liberal Democrat party made gains.
Labour's leftist leader Jeremy Corbyn had sought to make the vote about national spending cuts, building on a campaign that deprived the government of its majority in parliament in last year's general election.
May had also had a difficult week, with divisions erupting once again in her cabinet over Brexit and the resignation of a top minister last weekend over an immigration scandal.
"We've done better than expected," Conservative party chairman Brandon Lewis told Sky News.
"We have seen Labour - who thought they would be sweeping the board in London - thus far not gaining a single council in London."
Labour's national election coordinator, Andrew Gwynne, admitted it was a "mixed picture" and said the Conservatives had benefited from the collapse of UKIP.
Labour's goal to win Conservative strongholds such as Westminster and Wandsworth in London was always going to be hard and though the party gained seats, it failed to take control.
Its failure to take Barnet, a northern suburb with a large Jewish population that was Labour's top target in the capital, is likely to be more heavily scrutinised in the context of an ongoing row over anti-Semitism in the party.
The Conservatives held Kensington and Chelsea, where they had faced severe criticism over last year's devastating Grenfell Tower fire that killed 71 people, but with a smaller majority.
However, May's party lost control of Trafford, its flagship council in northwestern England, where no party won a majority in what Labour described as a "huge coup".
It also lost the strongly anti-Brexit London borough of Richmond upon Thames to the Liberal Democrats, which had courted EU citizens' vote.
"At present it looks like a better night for the Conservatives than many would have anticipated, while Labour results have not quite lived up to expectations," said Jonathan Carr-West, chief executive of the LGiU, a local government think tank.
"The picture emerging is that Labour has gone backwards slightly from 2014," when these council seats were last contested, added Matt Singh of Number Cruncher Politics.
"Opposition parties are supposed to do well in mid-term contests, and these aren't the results of one that's about to storm the next general election," he said.
National issues often factor in the local elections, but so too do questions of local tax rates, bin collection and the state of the roads.
It was too early to assess turnout but it is normally low - only around one third of voters cast their ballot in last year's local elections, compared to 69 percent in the national vote in June.