A variable node processing unit for an iterative message passing decoder of a non-binary error correcting code, the iterative message passing decoder being configured to determine an estimate of a codeword from a signal received from a transmitter by using a Tanner Graph representation of the non-binary error correcting code used at the transmitter to encode said codeword and constructed over the Galois Field GF ( q), the Tanner graph comprising one or more variable nodes and check nodes, the variable node processing unit being configured to receive one check node message and intrinsic reliability metrics and to generate one variable node message from the check node message and the intrinsic reliability metrics, the check node message comprising check node components, each check node component comprising a symbol that belongs to the Galois Field GF(q) and a reliability metrics associated with the symbol, the variable node message comprising variable node components, each variable node component comprising a symbol that belongs to the Galois Field GF(q) and a reliability metrics associated with the symbol, and the intrinsic reliability metrics being associated with intrinsic symbols and derived from the received signal, wherein the variable node processing unit comprises a calculation unit configured to: - determine a first auxiliary message from the check node message and the intrinsic reliability metrics associated with the symbols comprised in the check node message, the first auxiliary message comprising n CN auxiliary components, and - determine a second auxiliary message from the intrinsic reliability metrics associated with a predefined number n int of the most reliable intrinsic symbols and a reference reliability metrics, the second auxiliary message comprising n int auxiliary components, where the variable node message being truncated so as to keep only a predefined number n VN of the most reliable variable node components, with n VN being strictly lower than q, the check node message being truncated so as to keep only a predefined number n CN of the most reliable check node components, with n CN being strictly lower than q, and each auxiliary component comprising an auxiliary symbol and an auxiliary reliability metrics associated with said auxiliary symbol; and wherein the variable node processing unit further comprises: - a sorting and redundancy elimination unit configured to process iteratively the auxiliary components of the first and the second auxiliary messages, one auxiliary component being processed at each iteration of the sorting and redundancy elimination process, an iteration corresponding to a processing time interval, and to determine the variable node components of the variable node message by iteratively sorting said auxiliary components of the first and the second auxiliary messages according to a given order of the auxiliary reliability metrics and keeping the predefined number n VN of auxiliary components comprising the auxiliary symbols that are the most reliable and all different from one another. - determine a first auxiliary message from the check node message and the intrinsic reliability metrics associated with the symbols comprised in the check node message, the first auxiliary message comprising n CN auxiliary components, and - determine a second auxiliary message from the intrinsic reliability metrics associated with a predefined number n int of the most reliable intrinsic symbols and a reference reliability metrics, the second auxiliary message comprising n int auxiliary components, where the variable node message being truncated so as to keep only a predefined number n VN of the most reliable variable node components, with n VN being strictly lower than q, the check node message being truncated so as to keep only a predefined number n CN of the most reliable check node components, with n CN being strictly lower than q, and each auxiliary component comprising an auxiliary symbol and an auxiliary reliability metrics associated with said auxiliary symbol; and - a sorting and redundancy elimination unit configured to process iteratively the auxiliary components of the first and the second auxiliary messages, one auxiliary component being processed at each iteration of the sorting and redundancy elimination process, an iteration corresponding to a processing time interval, and to determine the variable node components of the variable node message by iteratively sorting said auxiliary components of the first and the second auxiliary messages according to a given order of the auxiliary reliability metrics and keeping the predefined number n VN of auxiliary components comprising the auxiliary symbols that are the most reliable and all different from one another.