Background info- just prior to MOT, the traction control light came on and stayed on. My mechanic scanned it and it turned out that the connector block to the ABS unit was corroded. He cleaned it up, cleared the code and it's been fine. Not sure if this is relevant but thought I should mention it.
Car has been fine since MOT. Parked it up a few nights ago, and when I came to restart in the morning, it fired straight away, but was clearly in limp mode-would drive at walking pace, gears selecting fine manually. No EML on, but the traction control light had reappeared. Called the RAC as I don't have diagnostics. This brought up two codes- camshaft position sensor (Cant remember the code number but it was definitely that) and BMW code P1622.
RAC guy thought it best to clear the codes and see what happens. He did so, and on starting the car was fully back to normal, driving fine, TC light off. Started it a few more times-all fine.
Came out to it cold again this morning and it's in limp again with TC light back on.
My thinking is initially to change the cam sensor. What do people think? Any other ideas?