I've got the same problem. Part of the problem is that I was getting hot engine air pushed up to the heater fan unit. I significantly reduced this by installing a new rubber seal between the firewall and the hood. BMW still has the seals but I elected to buy some generic material from JC Whitney which seems to be nicer, cheaper, and seal very well (part number ZX132565N - $29 for 25')
Since my problem is not entirely cured I suspect that the heater air diverter flap is also not working. I've gone through my parts manual and there appears to be a "bowden cable" between the heater control lever and the air diverter flap in the heater box. I suspect that the cable could be broken, disconnected, or the air diverter flap is jammed with debris. Major dash surgery is needed to get in and check it all out. I am determined to fully resolve this problem but it may take me a while. I'll write back if I learn more. Hopefully someone with some direct experience will chime in.