Existing self–tuners are reported to operate well for processes in which the parameters are constant but unknown. However, most industrial processes exhibit time-varying, nonlinear, and multivariable behaviour. This paper documents the theoretical development of a multivariable self-tuner, its implementation on a minicomputer, and the evaluation of its performance on a pilot plant.The multivariable self–tuner combines a recursive least–squares estimator with a pole-assignment, error–actuated controller. The basic algorithm for the estimator is extended to incorporate a variable forgetting factor in a multivariable context. This achieves a balance of the information in the estimator and ensures that, at each calculation step, the estimation is based on a constant amount of information. Hence, the estimates converge more rapidly and are more consistent. Furthermore, the algorithm prevents the covariance matrix from blowing–up, and permits the estimator to retain its ability to adapt to slow or to sudden changes in the plant dynamics. The information content of the estimator and the variable forgetting factor are scalar quantities, but the estimation error decouples the way these quantities affect their respective loops in the process. The reference–tracking controller sacrifices optimum performance in favour of robustness and generality of application, but retains the same self-tuning properties as controllers based on optimum control.The results of real–time control experiments indicate that the application of modified self-tuning methods to a system exhibiting multivariable, nonlinear, and time-varying dynamics yields satisfactory control performance.