diff --git a/LUFA/Drivers/Peripheral/SerialStream.c b/LUFA/Drivers/Peripheral/SerialStream.c
index fd5676aab1b99e17bafd0b5f73bf8c07406e6d02..4ae0a7f161ee255429e645d8115bbe6c8023b530 100644
--- a/LUFA/Drivers/Peripheral/SerialStream.c
+++ b/LUFA/Drivers/Peripheral/SerialStream.c
@@ -44,6 +44,9 @@ static int SerialStream_TxByte(char DataByte, FILE *Stream)
 static int SerialStream_RxByte(FILE *Stream)
 {
 	(void)Stream;
+	
+	if (!(Serial_IsCharReceived()))
+	  return EOF;
 
 	return Serial_RxByte();
 }
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 521ab38f958c0d7b41fc96ca8f31807862b6d00d..5fd1b2ba49d92fe018600a039f5b0023e808602e 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -53,6 +53,7 @@
   *  - Fixed Pipe_IsEndpointBound() not taking the endpoint's direction into account
   *  - Fixed EEPROM and FLASH ISP programming in the AVRISP project
   *  - Fixed incorrect values of USB_CONFIG_ATTR_SELFPOWERED and USB_CONFIG_ATTR_REMOTEWAKEUP tokens (thanks to Claus Christensen)
+  *  - Fixed SerialStream driver blocking while waiting for characters to be received instead of returning EOF
   *
   *  \section Sec_ChangeLog091223 Version 091223
   *