A method of decoding code blocks of a transport block of a communication signal using a decoder, the method comprising: making an assumption about how many decoder iterations should be used for different code blocks of the code blocks of the transport block, wherein the assumption is made based on a study of code block soft-bits; and decoding the transport block using different numbers of decoder iterations for the different code blocks, based on the made assumption about how many decoder iterations should be used for the different code blocks; wherein the making of an assumption comprises: dividing the soft-bits into different types including a type which is most reliable and a type which is least reliable, wherein the type which is most reliable comprises 0/1 soft-bits; based on a distribution of the different types in the different code blocks, determining that code blocks having relatively many most reliable soft-bits are less difficult code blocks and that code blocks having relatively many least reliable soft-bits are more difficult code blocks; and allocating more decoder iterations to the more difficult code blocks and less decoder iterations to the less difficult code blocks; and wherein the decoding comprises first decoding a code block of the different code blocks for which the lowest number of iterations is assumed, and then decoding a code block of the different code blocks for which a higher number of iterations is assumed, thus allowing iterations not used for decoding said code block, for which the lowest number of iterations is assumed, due to the code block needing fewer iterations to be sufficiently decoded, to be used for the decoding of the code block for which a higher number of iterations is assumed. making an assumption about how many decoder iterations should be used for different code blocks of the code blocks of the transport block, wherein the assumption is made based on a study of code block soft-bits; and decoding the transport block using different numbers of decoder iterations for the different code blocks, based on the made assumption about how many decoder iterations should be used for the different code blocks; wherein the making of an assumption comprises: dividing the soft-bits into different types including a type which is most reliable and a type which is least reliable, wherein the type which is most reliable comprises 0/1 soft-bits; based on a distribution of the different types in the different code blocks, determining that code blocks having relatively many most reliable soft-bits are less difficult code blocks and that code blocks having relatively many least reliable soft-bits are more difficult code blocks; and allocating more decoder iterations to the more difficult code blocks and less decoder iterations to the less difficult code blocks; and dividing the soft-bits into different types including a type which is most reliable and a type which is least reliable, wherein the type which is most reliable comprises 0/1 soft-bits; based on a distribution of the different types in the different code blocks, determining that code blocks having relatively many most reliable soft-bits are less difficult code blocks and that code blocks having relatively many least reliable soft-bits are more difficult code blocks; and allocating more decoder iterations to the more difficult code blocks and less decoder iterations to the less difficult code blocks; and wherein the decoding comprises first decoding a code block of the different code blocks for which the lowest number of iterations is assumed, and then decoding a code block of the different code blocks for which a higher number of iterations is assumed, thus allowing iterations not used for decoding said code block, for which the lowest number of iterations is assumed, due to the code block needing fewer iterations to be sufficiently decoded, to be used for the decoding of the code block for which a higher number of iterations is assumed.