A check node processing unit implemented in a decoder for decoding a signal encoded by a non-binary error correcting code, the check node processing unit being configured to receive at least three input messages and to generate output messages, wherein the check node processing unit comprises: - a syndrome calculator configured to determine a set of syndromes from said at least three input messages using at least two elementary check node processors, each syndrome comprising a symbol, a reliability metric associated with said symbol, and a binary vector comprising a number of bits; - a decorrelation unit configured to determine, in association with at least one output message, a set of candidate components from said set of syndromes, each candidate component comprising a symbol and a reliability metric associated with said symbol, said set of candidate components comprising two or more components comprising a same symbol; said set of candidate components being determined depending on the binary vector comprised in each syndrome of the set of syndromes, the binary vector indicating for which output messages a syndrome should be discarded when determining said candidate check node components; and - a selection unit configured to determine each output message by selecting components comprising distinct symbols from the set of candidate components associated with said output message, wherein at least one elementary check node processor is configured to determine an intermediary message from a first message and a second message, said first message and second message being derived from said at least three input messages, said intermediary message comprising a number of sorted components and a binary vector associated with each intermediary message component, each intermediary message component comprising a symbol and a reliability metric associated with said symbol, said intermediary message components being sorted into a given order of the reliability metrics of symbols, the syndrome calculator being configured to determine the components and the binary vectors of said set of syndromes from the components and the binary vectors of the intermediary message determined from all input messages. - a syndrome calculator configured to determine a set of syndromes from said at least three input messages using at least two elementary check node processors, each syndrome comprising a symbol, a reliability metric associated with said symbol, and a binary vector comprising a number of bits; - a decorrelation unit configured to determine, in association with at least one output message, a set of candidate components from said set of syndromes, each candidate component comprising a symbol and a reliability metric associated with said symbol, said set of candidate components comprising two or more components comprising a same symbol; said set of candidate components being determined depending on the binary vector comprised in each syndrome of the set of syndromes, the binary vector indicating for which output messages a syndrome should be discarded when determining said candidate check node components; and - a selection unit configured to determine each output message by selecting components comprising distinct symbols from the set of candidate components associated with said output message, wherein at least one elementary check node processor is configured to determine an intermediary message from a first message and a second message, said first message and second message being derived from said at least three input messages, said intermediary message comprising a number of sorted components and a binary vector associated with each intermediary message component, each intermediary message component comprising a symbol and a reliability metric associated with said symbol, said intermediary message components being sorted into a given order of the reliability metrics of symbols, the syndrome calculator being configured to determine the components and the binary vectors of said set of syndromes from the components and the binary vectors of the intermediary message determined from all input messages.