A novel M-algorithm-based detector, namely Malgorithm to maximum-likelihood (M-ML), for spatial modulation (SM) receiver is proposed recently, however, due to the miscalculation of metrics, bit-error-rate (BER) performance of M-ML is far away from optimal actually. In this paper, a modified M-ML detector, which calculates accumulated metrics of each layer and can achieve optimal BER performance, is proposed; Furthermore, an M-algorithm-based constellationreduction (MCR) method specially for SM in high correlated environment is proposed, MCR is capable of combining with maximum-likelihood (ML) and M-ML to further reduce complexity. The BER performance of M-ML and MCR is simulated, simulation results show that the proposed detectors can achieve almost the same BER performance to ML detector while reducing the computational complexity significantly.