diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.c b/Demos/Device/ClassDriver/GenericHID/GenericHID.c
index 9db30cebf70059577adad2ff131c97edd6851a24..323d69336d83faab41e5c71c10b3c15bdb4b64ec 100644
--- a/Demos/Device/ClassDriver/GenericHID/GenericHID.c
+++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.c
@@ -39,6 +39,14 @@
 /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */
 uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE];
 
+/** Structure to contain reports from the host, so that they can be echoed back upon request */
+struct
+{
+	uint8_t ReportID;
+	uint16_t ReportSize;
+	uint8_t ReportData[GENERIC_REPORT_SIZE];
+} HIDReportEcho;
+
 /** LUFA HID Class driver interface configuration and state information. This structure is
  *  passed to all HID Class driver functions, so that multiple instances of the same class
  *  within a device can be differentiated from one another.
@@ -139,9 +147,12 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
 bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID,
                                          void* ReportData, uint16_t* ReportSize)
 {
-	// Create generic HID report here
+	if (HIDReportEcho.ReportID)
+	  *ReportID = HIDReportEcho.ReportID;
+
+	memcpy(ReportData, HIDReportEcho.ReportData, HIDReportEcho.ReportSize);
 	
-	*ReportSize = 0;
+	*ReportSize = HIDReportEcho.ReportSize;
 	return true;
 }
 
@@ -155,5 +166,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
 void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID,
                                           const void* ReportData, const uint16_t ReportSize)
 {
-	// Process received generic HID report here
+	HIDReportEcho.ReportID   = ReportID;
+	HIDReportEcho.ReportSize = ReportSize;
+	memcpy(HIDReportEcho.ReportData, ReportData, ReportSize);
 }
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.txt b/Demos/Device/ClassDriver/GenericHID/GenericHID.txt
index fc5c136a28c8a2f58847c812803e1c3ad61ab694..226b007cf7359d0d2571a340e430bc134b6d7dd3 100644
--- a/Demos/Device/ClassDriver/GenericHID/GenericHID.txt
+++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.txt
@@ -51,8 +51,8 @@
  *
  *  Generic HID device demonstration application. This gives a simple reference application
  *  for implementing a generic HID device, using the basic USB HID drivers in all modern
- *  OSes (i.e. no special drivers required). It accepts and sends up to 255 byte reports to
- *  and from a USB Host, and by default transmits the last sent report back to the host.
+ *  OSes (i.e. no special drivers required). By default it accepts and sends up to 8 byte reports
+ *  to and from a USB Host, and transmits the last sent report back to the host.
  *  
  *  On start-up the system will automatically enumerate and function as a vendor HID device.
  *  When controlled by a custom HID class application, reports can be sent and received by
diff --git a/Demos/Device/LowLevel/GenericHID/GenericHID.txt b/Demos/Device/LowLevel/GenericHID/GenericHID.txt
index fc5c136a28c8a2f58847c812803e1c3ad61ab694..226b007cf7359d0d2571a340e430bc134b6d7dd3 100644
--- a/Demos/Device/LowLevel/GenericHID/GenericHID.txt
+++ b/Demos/Device/LowLevel/GenericHID/GenericHID.txt
@@ -51,8 +51,8 @@
  *
  *  Generic HID device demonstration application. This gives a simple reference application
  *  for implementing a generic HID device, using the basic USB HID drivers in all modern
- *  OSes (i.e. no special drivers required). It accepts and sends up to 255 byte reports to
- *  and from a USB Host, and by default transmits the last sent report back to the host.
+ *  OSes (i.e. no special drivers required). By default it accepts and sends up to 8 byte reports
+ *  to and from a USB Host, and transmits the last sent report back to the host.
  *  
  *  On start-up the system will automatically enumerate and function as a vendor HID device.
  *  When controlled by a custom HID class application, reports can be sent and received by