To the problem that the received-signal-strength indicator(RSSI) based indoor localization produces large location errors, an efficient iterative recursive weighted average filter is proposed to process RSSI signal. The model is obtained by least square fitting using measured data, and the maximum likelihood estimate(MLE) is used to location. An experiment is presented to verify the performance of the proposed algorithm. The experimental result shows that the proposed iterative recursive weighted average filter outperforms the particle filter with lower computation complexity, and can improve the measurement accuracy effectively. The polynomial fitting outperforms the log-distance path loss model, and the accuracy of 0.6m is obtained with the proposed algorithm.