I was reading the datasheet for the Atmel ATmega16 microcontroller and i came to this phrase in the USART section:
The two Buffer Registers operate as a circular FIFO buffer. Therefore the UDR must only be read once for each incoming data! More important is the fact that the Error Flags (FE and DOR) and the 9th data bit (RXB8) are buffered with the data in the receive buffer. Therefore the status bits must always be read before the UDR Register is read. Otherwise the error status will be lost since the buffer state is lost.
I have no idea what buffering the Error Flags and RXB8 means. Any help will be appreciated.