On my 2001 325i the computer always tells me I have 405 miles to run everytime I fill the tank. But I can never get more than 270 on the city, 320 on long high-way trips, with the 16 gallon tank, which is not as good as I would like. Shouldn't the computer automatically correct itself telling me the true available mileage based on what it learns or, it does not learn and I should be able to teach the computer somehow? It's my first BMW and I guess I haven't learned all the tricks yet. And I also think I should have it checked to actually improve mileage, as it may need some tune-up or something. It's got 117500 miles and I was planning to take it to the dealer at 120000 but now the check engine soon light came ON so I will have to take it there earlier than planned. I will try the gas cap trick, or at least clean it well with some W40 oil to see if the light goes OFF first. I really don't think the oxigen sensor would go bad just like that. I have it for 6 months when it had just passed through a BMW regular service.