An algorithm is presented for estimating complex transmit and receive array calibration gains in a MIMO communications system. Calibration values are computed from a series of distinct channel transfer function matrix estimates over a time-varying channel. The new method, called RIMM, is an extension of a previous algorithm proposed by Friedlander and Weiss [1]. Several significant weaknesses in the earlier algorithm are demonstrated, and robust solutions are presented. An auto-calibration experiment is presented using 2.43 GHz indoor channel probing data samples.