This paper investigates event localization in wireless sensor networks. We improve the SNAP (Subtract on Negative Add on Positive) localization algorithm and propose the MSNAP (Modified Subtract on Negative Add on Positive) localization algorithm with higher localization accuracy and better performance of fault tolerance. First, every sensor node obverses the event signal and compares its observed reading with a threshold. If the reading is above the threshold, the node will send it to the sink station. Otherwise, it remains silent. Based on the observed readings which the nodes report, the sink station constructs the likelihood matrix by simply adding ± 1 contributions in the area around the nodes, whose maximum value points to the event location. Compared with the SNAP algorithm, when constructing the likelihood matrix, MSNAP dynamically adjusts the size of estimated region depending on the observed readings the nodes reported. Experimental results show that the algorithm effectively improves the localization accuracy and fault tolerance.