Thanks to Nicko and Lovemyev: I have had exactly this problem for a couple of months, and this fixed it instantly!
I had a service booked for five weeks time to fix this - I might keep the booking before cancelling, in case something else comes up. Shame the service department didn't know...