This is only one possible way to fix the problem at hand, as the problem must determine the solution. Mine was a code P0128, with the heater very weak and the car very slow to warm up. Pulling the code with my Actron showed that the thermostat was kaput. In this case, it was opening too early and not letting the engine warm up. This is going to make for some piggish engine performance (poor fuel economy) and make it extremely dangerous driving in cold weather. In my case, it took nearly 45 minutes to warm up and it was very difficult to defrost the windows. It'll also make for some cold driving with my wife and kids in the car, so this is going to have to be fixed. The best way is to take it in to a competent mechanic because this is going to be a bit of a beast to fix. It took me four hours because the young lady at the auto parts store insisted there was no molded hose for the intake, but more on this later. Do this at your own risk, I have no control over your work.
BE SURE THE ENGINE IS COOL FIRST. The thermostat lives on the upper part of the engine inside the water outlet on the drivers side of the car. This is bolted on the intake manifold with two 1/4 inch bolts with 13mm heads. The brake master cylinder, air cleaner and intake hose are also in the way, as is the pipe that runs from the passengers side of the engine. Drain the coolant first. You'll want to use a 10mm wrench to remove the bolt first and pry the pipe out with a screwdriver. Be careful not to nick the "o" ring or you'll be replacing it. Take off the air cleaner and use a 15mm socket to remove the master cylinder. DON'T undo the brake lines, just set it aside. Use a pair of needle nose pliers to remove the clamps from the 3/8 hoses on that pipe under the throttle body; there are two of them. Don't cut the hoses unless you want to fight with the guy at the auto parts counter for a molded hose; ditto with the other hose on the passengers side of the engine. Save the clamps for reuse.
Now the fun part begins. Every other writing I've seen on this says you have to remove the exhaust crossover to get to the bolts holding the thermostat. This is fine if you don't mind buying new gaskets and fasteners to replace the ones you'll tear up. Besides, this is a lot of work to replace a $7 part as it is. Better pack your patience, but you can do this and save $400 and get your heater working again. Use a 13mm socket to remove the front bolt and a 13mm combination wrench to loosen the back bolt from the backside, but don't remove it. You just need to able to wiggle the thermostat housing off the thermostat. Remove the old one and install the new one plunger side in. Wiggle the housing over the thermostat, making sure the notch goes over the bolt. Hand tighten it a bit and thread the other bolt in. Tighten that one first and the back one last.
All you'll need to do is make sure everything else is installed before you start the engine. Do the master cylinder first as this is most critical, followed by the pipe and air cleaner and all the clamps. Refill the cooling system and install a new cap if more than a few years old. There are two bleeder valves on either side of the engine and these will need to be opened to purge any air as you fill this up. Once you see coolant, close the bleeders start the engine, making sure the heater is on full blast. Fill the overflow tank to the high level and crack open the bleeder valves once more to purge any air left in the system. Make sure the heater works and the temperature gauge makes it to halfway. Check for leaks and you should have a heater that works as good as new, provided there wasn't anything else wrong with the cooling system to begin with. Mine works fine, so we'll leave it at that for now. Maranatha!