When an engine has idle problems, but otherwise runs normally, the problem is more often than not, a vacuum leak of some description. This could be a rubber hose, intake manifold gasket, PCV valve, EGR problems or any other thing that can allow air to enter the intake, past the throttle body.