1. A method of decoding a codeword comprising: receiving decision bits produced by decoding the codeword and a plurality of candidate error events; for each of a plurality of syndrome values, selecting a set of error events capable of producing the syndrome value from the plurality of candidate error events, wherein selecting the set of error events comprises selecting a predetermined number of error events capable of producing the syndrome value from the plurality of candidate error events, at least in part, by ranking a plurality of error event metrics; and decoding the codeword by correcting the received decision bits using the selected set of error events for each of the plurality of syndrome values.