I bought my 99 328i a month ago. When I purchased her the check engine light was on. I ran the codes, and found out she was running lean in banks 1 and 2 and had a misfire. I replaced the valve gasket which was hard plastic, changed the spark plugs, replaced the intake boot, cleaned the ICV and DISA. I then replaced the pre-cat O2 sensors. I ran her for a few miles and had my buddy reset the codes. I then drove her home, and the light came back on grrr. I really haven't driven that much in the past few days since I changed out the O2 sensors. Then tonight I drive to my buddy's place and hang out for a few, and then I get back in my car and the check engine light is now off. I drove her for about 20 miles, stopped and got some gas, and came home and the light is still off. Did it just take a while for the O2 sensors to work, or perhaps the computer to figure out the parts have changed and to compensate for them? Any help would be appreciated.