Methods are disclosed herein for generating and using outer codes based on non-equal length code blocks. In one embodiment, the outer code has a length equal to the length of the longest code block. This can be achieved by padding shorter code blocks such that they are also of equal length to the longest code block. The padding may be a standardized pseudo-random pattern or a standardized repeating pattern. In another embodiment, the outer code has a length shorter than the length of the longest code block. If a code block is received in error it may be recovered by using one or more of: the first outer code block, information bits of other code blocks and the parity bits of the failed code block.