A method, in a decoder, of decoding as a codeword a plurality of symbols received from a data sender using a noisy transmission channel, the method comprising: receiving hard decision demodulation information about a plurality of demodulated symbols from the noisy transmission channel, each symbol corresponding to z≥1 bits; receiving for the plurality of demodulated symbols, information indicating a ranked order of reliability of the most unreliable information contained within the plurality of demodulated symbols, wherein said most unreliable information comprises n>1 most unreliable symbols of the plurality of demodulated symbols, and where n is equal to a power of 2, said information indicating a ranked order of reliability comprises no more than log 2 (n) bits per unreliable symbol, or where n is not equal to a power of 2, said information indicating a ranked order of reliability comprises no more than the smallest integer which is larger than log 2 (n) bits per unreliable symbol, providing a sequence of putative noise patterns from a most likely pattern of noise affecting said plurality of symbols through one or more successively less likely noise patterns based on the information indicating a ranked order of reliability, responsive to the information contained within the plurality of symbols not corresponding with an element of a code-book comprising a set of valid codewords, using a first in said sequence of putative noise patterns to invert the most unreliable information of the information contained within the plurality of symbols to obtain a potential codeword, said inverting comprising flipping the demodulated values for the z bits of a symbol through their 2 z -1 remaining combinations, and responsive to the potential codeword not corresponding with an element of the code-book, repeatedly: applying a next likely noise pattern from the sequence of putative noise patterns to invert a noise effect on the received plurality of demodulated symbols to provide a potential codeword, each successive noise pattern indicating an inversion of information for one or more demodulated symbols for a next more reliable combination of information contained within the plurality of symbols, until the potential codeword corresponds with an element of the code-book; and outputting the potential codeword as the decoded codeword. receiving hard decision demodulation information about a plurality of demodulated symbols from the noisy transmission channel, each symbol corresponding to z≥1 bits; receiving for the plurality of demodulated symbols, information indicating a ranked order of reliability of the most unreliable information contained within the plurality of demodulated symbols, wherein said most unreliable information comprises n>1 most unreliable symbols of the plurality of demodulated symbols, and where n is equal to a power of 2, said information indicating a ranked order of reliability comprises no more than log 2 (n) bits per unreliable symbol, or where n is not equal to a power of 2, said information indicating a ranked order of reliability comprises no more than the smallest integer which is larger than log 2 (n) bits per unreliable symbol, providing a sequence of putative noise patterns from a most likely pattern of noise affecting said plurality of symbols through one or more successively less likely noise patterns based on the information indicating a ranked order of reliability, responsive to the information contained within the plurality of symbols not corresponding with an element of a code-book comprising a set of valid codewords, using a first in said sequence of putative noise patterns to invert the most unreliable information of the information contained within the plurality of symbols to obtain a potential codeword, said inverting comprising flipping the demodulated values for the z bits of a symbol through their 2 z -1 remaining combinations, and responsive to the potential codeword not corresponding with an element of the code-book, repeatedly: applying a next likely noise pattern from the sequence of putative noise patterns to invert a noise effect on the received plurality of demodulated symbols to provide a potential codeword, each successive noise pattern indicating an inversion of information for one or more demodulated symbols for a next more reliable combination of information contained within the plurality of symbols, until the potential codeword corresponds with an element of the code-book; and outputting the potential codeword as the decoded codeword.