In this paper we presented an iteration algorithm using genetic programming (GP) to get the Wiener model of a nonlinear system and then to compensate the nonlinear distortion. The GP is used to identify the linear time-invariant (LTI) part and memory less nonlinear (MLNL) part of the Wiener model of the object system. By means of iteration, the identification precision will be improved gradually with the iteration steps. In order to compensate the non linearity a distortion compensation function (DCF) will be estimated also by means of GP. If the object system can be well described using Wiener model, this algorithm converges. The experiment results show that the compensation precision is fairly high.