I got a new phone the other day. So I rang O2 to cancel my old contract. And instead of cancelling it, they offered me a year's free line rental.
This might sound too good to be true, but, as their guy explained the details, it turned out to be even better: they credit my account with £100 and give me a contract that costs £6 a month, so, at the end of the year, I still have £28 of credit left over. Excellent. I get to keep my old number (and I've diverted all its calls to my new number, of course), have two live phones, and they pay me for it.
O2 used to be famously swimming in complaints. Looks like that's changing.