I second the Rain-X. However, a mistake that probably 90% of people make when using it is that they treat it like a glass cleaner. First clean the glass with a glass cleaner, then spread Rain-X generously and wait for it to dry (will get slightly hazy), then buff the haze off with a soft cloth.