Many indoor fingerprinting localization methods are based on signal-domain distances with large localization error and low stability. An improved fingerprinting localization method using a clustering algorithm and dynamic compensation was proposed. In the offline stage, the fingerprint database was built and clustered based on offline hybrid distance and an affinity propagation clustering algorithm. Furthermore, clusters were adjusted using transition regions and a given radius, as well as updating the corresponding position and fingerprint of the cluster centroid. In the online stage, the lost received signal strength (RSS) in the reference fingerprint would be dynamically compensated by using a minimum RSS value, rather than a fixed one. Online signal-domain distance was calculated for cluster identification based on RSS readings and compensated reference fingerprint. Then, K reference points with minimum online signal-domain distances were selected, and affinity propagation clustering was reused by position-domain distances to choose the position-concentrated sub-cluster for location estimation. Experimental results show that the proposed method outperforms state-of-the-art fingerprinting methods, with the mean error of 2.328 m, the root mean square error of 1.865 m and the maximum error of 10.722 m in a testbed of 3200 square meters. The improvement rates, in terms of accuracy and stability, are more than 21% and 13%, respectively.