Therefore, the learned value KOBSV#Nstyi is not updated e.g. immediately after the start of the cylinder-by-cylinder air-fuel ratio feedback control or during execution of perturbation of the air-fuel ratio, which makes it possible to prevent the learned value KOBSV#Nstyi from deviating from a proper value.