My 2007 Z4 3.0i has a misfire. If I pull over and restart the engine, it will run fine. I may go 30 miles to a destination running fine, then on the way home it will start running bad. A service engine soon light came on yesterday, so I made an appointment with my mechanic. Today I drove it all over and the light was out and it ran fine again. It should still retain the code correct? I'm hoping the mechanic can find out what the problem is. Any ideas?