I'm having the same problem since few days back. I had a talk with the technician from the nearest dealer and my problem is yet to get resolved. But I have a strong feeling its the Idle Air Control Valve, either stuck or short circuit. Replacing it should solve the problem. I found this explaination which should help:
An IAC (idle air control) motor is designed to adjust the engine idle RPM speed by opening and closing an air bypass passage inside the throttle body. An IAC motor can fail one of two ways; either the motor short circuits and stops working or the motor will develop high resistance and cause the IAC control motor to react slowly. Either failure will cause the engine to operate at an elevated idle. When a trouble code scan is performed it sometimes won't always detect a failed or weak IAC motor. To check the IAC motor remove the unit. With the wires connected turn the key to the "on" position without starting the engine. The IAC should move in or out. If the IAC motor does nothing it has probably failed. Replace it with a new unit and recheck system. Note: while the IAC motor is removed clean (use aerosol carburetor cleaner) the passages the IAC uses to control idle air speed. If the IAC valve checks "ok" proceed to the next step.
Thursday, March 10th, 2011 AT 8:30 AM