diff --git a/LUFA/Drivers/USB/Class/Host/CDC.c b/LUFA/Drivers/USB/Class/Host/CDC.c
index 030ad946482e2d5a10aa9a63cf896535e3b8a87e..7f5bcb940452a70e6eee8e3b2572fc46ce5eaf14 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.c
+++ b/LUFA/Drivers/USB/Class/Host/CDC.c
@@ -445,6 +445,9 @@ static int CDC_Host_getchar_Blocking(FILE* Stream)
 {
 	while (!(CDC_Host_BytesReceived((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream))))
 	{
+		if (USB_HostState == HOST_STATE_Unattached)
+		  return _FDEV_EOF;
+
 		CDC_Host_USBTask((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));
 		USB_USBTask();
 	}