is it doing this when it's cold only or even when it warms up? Check for IACV (Idle Air Cintrol Valve) and possibly ECT(Engine Coolent Temp.) sensor. My brother's car did this only when it was cold and when it warmed up it idled fine. ECT was the problem.