A data processing apparatus operable to map input data symbols to be communicated onto sub-carrier signals of Orthogonal Frequency Division Multiplexed OFDM symbols, the number of sub-carrier signals available for each OFDM symbol for carrying the input data symbols being variable between the OFDM symbols, each of the OFDM symbols including a signal indicating the number of sub-carriers in the OFDM symbol, and the input data symbols including first sets of data symbols and second sets of input data symbols, the data processing apparatus comprising an address generator, an interleaver memory and a controller, the controller being operable, when operating in accordance with a first interleaving process to read out a first set of the input data symbols from the interleaver memory on to the sub-carrier signals of an even OFDM symbol using read addresses determined in accordance with a sequential order of the first set of input data symbols, and to write in a second set of the input data symbols into the interleaver memory using the addresses generated by the address generator, and the controller is operable in accordance with a second interleaving process, to read out a first set of input data symbols from the interleaver memory on to the sub-carrier signals of an odd OFDM symbol using read addresses generated by the address generator, and to write in a second set of the input data symbols into the interleaver memory at write addresses determined in accordance with a sequential order of the first set of input data symbols, such that while input data symbols from the first set are being read from locations in the interleaver memory, input data symbols from the second set can be written to the locations just read from, wherein the number of the sub-carriers which are available from a previous OFDM symbol is different from the number of the sub-carriers which are available from a current OFDM symbol, and the controller is operable to determine before reading out the first input data symbols from the interleaver memory, whether the read address is valid for the previous OFDM symbol, by determining the number of sub-carriers in the previous OFDM symbol from the signal received from the previous OFDM symbols, comparing the read address with the number of sub-carriers which are available for the previous OFDM symbol, and if the read address is lower than the number of sub-carriers which are available, determining that the read address is valid and reading an input data symbol from the interleaver memory at the read address, and if the read address is not lower than the number of sub-carriers which are available for the previous OFDM symbol, determining that the read address is not valid and re-generating the read address, and to determine before writing the second input data symbols into the interleaver memory, whether the write address is valid for the current OFDM symbol, by determining the number of sub-carriers in the current OFDM symbol from the signal received from the current OFDM symbol, comparing the write address with the number of sub-carriers which are available for the current OFDM symbol, and if the write address is lower than the number of sub-carriers which are available, determining that the write address is valid and writing an input data symbol to the interleaver memory at the write address, and if the write address is not lower than the number of sub-carriers which are available for the current OFDM symbol, determining that the write address is not valid and re-generating the write address.