Polls have closed in the Richmond Park by-election where former Conservative MP Zac Goldsmith faced a Lib Dem bid to unseat him.
Goldsmith quit as Tory MP in protest at the Government's plans to build another runway at Heathrow, but Lib Dems tried to switch the focus of the campaign to Brexit in the staunchly Remain constituency.
The defeated Tory London mayor candidate stood on an independent, anti-Heathrow expansion ticket, as the Lib Dems poured resources into the contest to boost their standard bearer Sarah Olney.
In the final hours of campaigning, the party hit the streets with Bob Geldof, who attacked Goldsmith, an old friend, for being a failure and chanted "Zac is crap" while posing for pictures.
The singer joined Olney, an accountant working at the National Physical Laboratory in Teddington, who joined the party in May 2015, to chat to voters.
Neither the Tories nor Ukip put up candidates to stand against Goldsmith, who secured a 23,000 majority from the 2015 general election.
Some Labour MPs urged their party to avoid contesting the by-election to give the Lib Dems a better chance of winning, but writer, broadcaster and railway historian Christian Wolmar represented the party.
The Greens, who called for a "progressive alliance" against Goldsmith, did not run a candidate.
Eight candidates contested the seat, including Fiona Syms, the ex-wife of Tory MP Robert Syms (Poole). She stood as an independent opposed to Goldsmith but has said she would seek to join the Conservatives if elected.