Batley and Spen: Is politics starting to return to normal?
Labour has reason to be cheerful - and that hasn't happened much lately.
Holding on to Batley and Spen in a by-election means the party keeps one of its seats on the green Commons benches and it will be filled by a standout candidate, in Kim Leadbeater.
And the result has also saved Labour leader Sir Keir Starmer from what would have been, at the very least, a weekend of public criticism and concerns, and at the worst, could have boiled over into an attempt to oust him.
Labour insiders are heartened too by how some voters who chose the Tories in 2019, or in the local elections a couple of months ago, switched to them, even allowing the party to catch up with the Conservatives in some wards where they had come third in May.
But even the most ardent backer of Keir Starmer would not imagine that all his problems have disappeared.
George Galloway managed to peel away thousands of traditional Labour voters.
And there's barely-disguised hostility to Sir Keir from some on the left, who were discussing the possibility of replacing him as leader.
Initial enthusiasm about the possibilities his leadership held has disappeared for many MPs.
And there is genuine concern among some of his close supporters about his ability to excite voters.
Common themes
One shadow minister said: "I've never seen the air go out of a leadership so quickly."
This by-election pumps a bit of oxygen back in, and may give Keir Starmer some much-needed confidence.
But doubts about his long-term prospects run deep.
It is always foolish to read too much into by-elections.
This is the fourth in recent weeks.
One of those was the Airdrie and Shotts by-election in mid May, where the SNP held the seat.
It also saw Scotland's second-ever female Muslim MP elected - Anum Qaisar-Javed.
But it's the trio of Hartlepool, Chesham and Amersham and now Batley and Spen, which had very different results, and are very different places - and they throw up some common themes for both of the big Westminster parties.
'Westminster bubble'
Labour still has real problems holding on to voters even in parts of the country they held for a long time - in Batley thousands of them were persuaded by George Galloway.
In Hartlepool, there was a thumping swing to the Tories (who also benefitted hugely from voters who had chosen the Brexit Party in 2019). The party has to work out how to make their existing vote stick, even before they set out trying to woo new voters.
The Tories had spotted opportunity in Batley and Spen long before the seat even became vacant.
Yes, historically it is unusual for sitting governments to win new seats in by-elections.
But they certainly were hopeful, and the formula that has proved so successful turning seats in much of the North of England blue in recent times didn't work.
Voters noticed recent allegations of sleaze too, despite the prime minister's repeated claim that those kind of issues are just part of the "Westminster bubble".
Just as in Amersham, where the Lib Dems completely overwhelmed the Conservatives, voters looked at the government and didn't like everything they saw.
Boris Johnson and his ministers have got used to parading the undoubted success of the UK's vaccine programme as an answer to almost every claim made against them.
But there's a sense the political power of that, and the faith many voters have wanted to place in the government during the pandemic, have started to fade.
These three by elections, in their different ways, make plain that the obstacles in Labour's path to power are enormous.
But also that the Tories can't take their vast Commons majority for granted - and that their historical advance in the past few years may have stalled.
Another lesson perhaps, is that as the government hopes life is returning to normal, politics is moving that way too.