Look here
http://www.e90post.com/forums/forumdisplay.php?f=48 take a look at the stickies on the top of that page and go from there. Please post an update so if someone has a similar experience they will know (or not know) what to do. Thanks and good luck!
__________________
If no codes are being thrown use Chevron Techron fuel injector cleaner (concentrate). It solves rpm fluctuating upon cold start-up. Also, for most BMW problems start off by scanning your car with the Peake Research Tool. It contains the actual BMW codes. If you want to register a newly installed battery for free (just buy a $10 cable) and google/download BMWLogger