diff --git a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c
index c70b534032aa3810833fa434ba76f3365e9164d8..bad87578a41ee30e8fd1513591a6fa2432d15ab5 100644
--- a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c
+++ b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c
@@ -49,59 +49,6 @@ CDC_Line_Coding_t LineEncoding = { .BaudRateBPS = 0,
                                    .ParityType  = Parity_None,
                                    .DataBits    = 8            };
 
-
-#if 0
-/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in
- *       <stdio.h> can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string).
- */
-	
-static int CDC_putchar(char c, FILE *stream)
-{	  
-	Endpoint_SelectEndpoint(CDC_TX_EPNUM);
-
-	if (!(LineEncoding.BaudRateBPS))
-	  return -1;
-	
-	if (Endpoint_WaitUntilReady())
-	  return -1;
-
-	Endpoint_Write_Byte(c);
-	Endpoint_ClearIN();
-	
-	return 0;
-}
-
-static int CDC_getchar(FILE *stream)
-{
-	int c;
-
-	if (!(LineEncoding.BaudRateBPS))
-	  return -1;
-
-	Endpoint_SelectEndpoint(CDC_RX_EPNUM);
-	
-	for (;;)
-	{
-		if (Endpoint_WaitUntilReady())
-		  return -1;
-	
-		if (!(Endpoint_BytesInEndpoint()))
-		{
-			Endpoint_ClearOUT();
-		}
-		else
-		{
-			c = Endpoint_Read_Byte();
-			break;
-		}
-	}
-	
-	return c;
-}
-
-static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW);
-#endif
-
 /** Main program entry point. This routine contains the overall program flow, including initial
  *  setup of all components and the main program loop.
  */
diff --git a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
index 4c521a48098036b3748bef2538429f56af5375b9..588198bb40abd8bb5c4363aff925d7bbb19fd536 100644
--- a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
+++ b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c
@@ -36,52 +36,6 @@
  
 #include "VirtualSerialHost.h"
 
-#if 0
-/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in
- *       <stdio.h> can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string).
- */
-	
-static int CDC_putchar(char c, FILE *stream)
-{	  
-	Pipe_SelectPipe(CDC_DATAPIPE_OUT);
-	
-	if (Pipe_WaitUntilReady())
-	  return -1;
-
-	Pipe_Write_Byte(c);
-	Pipe_ClearIN();
-	
-	return 0;
-}
-
-static int CDC_getchar(FILE *stream)
-{
-	int c;
-
-	Pipe_SelectPipe(CDC_DATAPIPE_IN);
-	
-	for (;;)
-	{
-		if (Pipe_WaitUntilReady())
-		  return -1;
-	
-		if (!(Pipe_BytesInPipe()))
-		{
-			Pipe_ClearOUT();
-		}
-		else
-		{
-			c = Pipe_Read_Byte();
-			break;
-		}
-	}
-	
-	return c;
-}
-
-static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW);
-#endif
-
 /** Main program entry point. This routine configures the hardware required by the application, then
  *  enters a loop to run the application tasks in sequence.
  */
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index f124fcc48d848eddae80609bdee0b1a9cd333163..79010bd1158e9b399f58ce62ae3775efd5d7e680 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -32,6 +32,7 @@
   *  - Inlined currently unused (but standardized) maintenance functions in the Device and Host Class drivers to save space
   *  - The XPLAINBridge project now selects between a USB to Serial bridge and a PDI programmer on startup, reading the JTAG port's
   *    TDI pin to determine which mode to use
+  *  - Removed the stream example code from the Low Level VirtualSerial demos, as they were buggy and only served to add clutter
   *
   *  <b>Fixed:</b>
   *  - Fixed AVRISP project not able to enter programming mode when ISP protocol is used