I have a 2005 Forester XS with 160K miles on it. This past summer I got stranded up in Maine with a bad spark plug. The spark plugs, wire, and coil were replaced. Following that, the car still didn't idle correctly. I disconnected the battery, waited about 30 minutes, re-connected the battery, turned the ignition to the on position for about 10 seconds, started the car and didn't touch anything and let the ECM relearn how to idle (as is a popular subject on these forums). The car seemed to run fine after that though I thought it idled a little rougher than before the fix.
I drove the car though our rough Chicago winter with no problems. The first day that it got warm out the car developed a very rough idle - to the point of stalling at red lights. Now, if its cooler out it will start up normally but once the engine warms up it idles rough and usually stalls out. If its warmer out, as it was yesterday, the car is rough to start (you have to work the gas pedal) and idles really rough and then stalls out. It idles so low that the engine shakes the car uncontrollably.
I cleaned the MAF, the throttle body, and the idle air control valve. That seemed to work for a day but it soon went back to idling really rough. What else should I check? Should I just replace the IAC?