-       if (UARTtoUSB_Buffer.Elements)
-         CDC_Device_SendByte(&VirtualSerial_CDC_Interface, Buffer_GetElement(&UARTtoUSB_Buffer));
-       
-       /* Load bytes from the UART transmit buffer into the UART */
-       if ((USBtoUART_Buffer.Elements) && SoftUART_IsReady())
-         SoftUART_TxByte(Buffer_GetElement(&USBtoUART_Buffer));
-       
-       /* Load bytes from the UART into the UART receive buffer */
-       if (SoftUART_IsReceived())
-         Buffer_StoreElement(&UARTtoUSB_Buffer, SoftUART_RxByte());
+       if (UARTtoUSB_Buffer.Count)
+         CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_Remove(&UARTtoUSB_Buffer));