check the lambda sensor usually a culprit where fuel consumption is concerned. if you know someone who has a krypton diagnostic machine they'll be able to compare the reading to manufacturers data, if its kaput there pretty easy to replace, but quite expensive.
I know they caused a lot of fuel consumption irregularities amongst the bmw e36 communtiy