diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index d2c852548443ab4fb8a4e76d13dac0bb0d121d00..b776175d66cce51a1620a6cd7d0ba5a150d679df 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -18,6 +18,7 @@
   *  - Added a timeout value to the TWI_StartTransmission() function, within which the addressed device must respond
   *  - Webserver project now uses the board LEDs to indicate the current IP configuration state
   *  - Added ENABLE_TELNET_SERVER compile time option to the Webserver project to disable the TELNET server if desired
+  *  - Increased throughput of the USBtoSerial demo on systems that send multiple bytes per packet (thanks to Opendous Inc.)
   *
   *  <b>Fixed:</b>
   *  - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c
index 1f70f3493e4ed400f0749ec4a7b674a36544b4ce..73be33e1fd1aab8454b0bcc237f700dce6663241 100644
--- a/Projects/USBtoSerial/USBtoSerial.c
+++ b/Projects/USBtoSerial/USBtoSerial.c
@@ -90,11 +90,11 @@ int main(void)
 		}
 		
 		/* Read bytes from the USART receive buffer into the USB IN endpoint */
-		if (USARTtoUSB_Buffer.Elements)
+		while (USARTtoUSB_Buffer.Elements)
 		  CDC_Device_SendByte(&VirtualSerial_CDC_Interface, Buffer_GetElement(&USARTtoUSB_Buffer));
 		
 		/* Load bytes from the USART transmit buffer into the USART */
-		if (USBtoUSART_Buffer.Elements)
+		while (USBtoUSART_Buffer.Elements)
 		  Serial_TxByte(Buffer_GetElement(&USBtoUSART_Buffer));
 		
 		CDC_Device_USBTask(&VirtualSerial_CDC_Interface);