i would take it to a well known german mechanic and tell them exactly what you told me, i bet they can pretty much pin point the problem in a few minutes and they wont charge ya... You should really check your air filter though, When i drove my 318 mine was filthy and my car could barely breath... i changed it and mpg went up a good amount. I have also heard it could be the cat
David