}\r
                \r
                /* Read bytes from the USART receive buffer into the USB IN endpoint */\r
-               if (USARTtoUSB_Buffer.Elements)\r
+               while (USARTtoUSB_Buffer.Elements)\r
                  CDC_Device_SendByte(&VirtualSerial_CDC_Interface, Buffer_GetElement(&USARTtoUSB_Buffer));\r
                \r
                /* Load bytes from the USART transmit buffer into the USART */\r
-               if (USBtoUSART_Buffer.Elements)\r
+               while (USBtoUSART_Buffer.Elements)\r
                  Serial_TxByte(Buffer_GetElement(&USBtoUSART_Buffer));\r
                \r
                CDC_Device_USBTask(&VirtualSerial_CDC_Interface);\r