diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index d2c8525484..b776175d66 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 1f70f3493e..73be33e1fd 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);