Geoff's reign of terror is over at last...
Coronation Street celebrated 60 years of being on our screens with a shocking death twist for Geoff Metcalfe tonight.
Fans of the world's longest-running soap have spent months watching Geoff's coercive abuse of wife Yasmeen (Shelley King) play out.
His vile behaviour saw Yasmeen finally lash out in self defence ending up in prison for attempted murder.
Thankfully Geoff's true colours were finally revealed and Yasmeen was set free from prison on Monday... only for Geoff to continue terrorising her.
Geoff's final torment
Tonight's hour-long episode saw evil Geoff brutally attacking Yasmeen's granddaughter, Alya, in Speed Daal, leaving her for dead on the restaurant floor.
But his plan to kill Yasmeen in a house fire went wrong when she escaped onto the roof in a bid to get help.
Before anyone could hear her cries of desperation, Geoff had climbed onto the roof to chase her, clearly intent on finishing her off for good.
However, the soap gods were ready and waiting, and it was eventually Geoff who finally got his comeuppance and plunged off the roof and landed in the garden with a sickening thud.
But while a fall from a roof that high isn't going to do anyone any favours, fans are convinced there could be another twist in store.
Despite Geoff lying lifelessly in the middle of the garden, fans are worried he might not actually be dead...
Despite viewers believing Geoff might live to see another day, actor Ian Bartholomew, who plays evil Geoff, confirmed his departure from the soap with a farewell message to fans...
But how will fragile Yasmeen feel that her attempts to save Geoff didn't work?
And more to the point, how is she ever going to get down from that roof?!
Coronation Street will air special hour-long episodes for the 60th anniversary week on Monday, Wednesday and Friday at 7.30 on ITV.
Get the latest updates, reviews and unmissable series to watch and more!
Thank you for signing up to Whattowatch. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.