diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h
index 21ffa45514e2fa377d43748d11ac0627e8d19106..a4caaa2360729bbc51a45ac3ecfde2f64eb6eeeb 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h
@@ -72,67 +72,6 @@
 		
 		/** Value for the DeviceType entry in the SCSI_Inquiry_Response_t enum, indicating a CD-ROM device. */
 		#define DEVICE_TYPE_CDROM   0x05
-
-	/* Type Defines: */
-		/** Type define for a SCSI response structure to a SCSI INQUIRY command. For details of the
-		 *  structure contents, refer to the SCSI specifications.
-		 */
-		typedef struct
-		{
-			unsigned char DeviceType          : 5;
-			unsigned char PeripheralQualifier : 3;
-			
-			unsigned char _RESERVED1          : 7;
-			unsigned char Removable           : 1;
-			
-			uint8_t      Version;
-			
-			unsigned char ResponseDataFormat  : 4;
-			unsigned char _RESERVED2          : 1;
-			unsigned char NormACA             : 1;
-			unsigned char TrmTsk              : 1;
-			unsigned char AERC                : 1;
-
-			uint8_t      AdditionalLength;
-			uint8_t      _RESERVED3[2];
-
-			unsigned char SoftReset           : 1;
-			unsigned char CmdQue              : 1;
-			unsigned char _RESERVED4          : 1;
-			unsigned char Linked              : 1;
-			unsigned char Sync                : 1;
-			unsigned char WideBus16Bit        : 1;
-			unsigned char WideBus32Bit        : 1;
-			unsigned char RelAddr             : 1;
-			
-			uint8_t      VendorID[8];
-			uint8_t      ProductID[16];
-			uint8_t      RevisionID[4];
-		} SCSI_Inquiry_Response_t;
-		
-		/** Type define for a SCSI sense structure to a SCSI REQUEST SENSE command. For details of the
-		 *  structure contents, refer to the SCSI specifications.
-		 */
-		typedef struct
-		{
-			uint8_t       ResponseCode;
-			
-			uint8_t       SegmentNumber;
-			
-			unsigned char SenseKey            : 4;
-			unsigned char _RESERVED1          : 1;
-			unsigned char ILI                 : 1;
-			unsigned char EOM                 : 1;
-			unsigned char FileMark            : 1;
-			
-			uint8_t      Information[4];
-			uint8_t      AdditionalLength;
-			uint8_t      CmdSpecificInformation[4];
-			uint8_t      AdditionalSenseCode;
-			uint8_t      AdditionalSenseQualifier;
-			uint8_t      FieldReplaceableUnitCode;
-			uint8_t      SenseKeySpecific[3];
-		} SCSI_Request_Sense_Response_t;
 		
 	/* Function Prototypes: */
 		bool SCSI_DecodeSCSICommand(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
diff --git a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c
index 921f3a9f8e5ec258d17214b6ea7bf4accda566f5..b3c17a8321e99cd87ebb2994ebb393ad8749318a 100644
--- a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c
+++ b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c
@@ -165,7 +165,7 @@ void ReadNextReport(void)
  *
  *  \param[in] ReportOUTData  Buffer containing the report to send to the device
  *  \param[in] ReportIndex  Index of the report in the device (zero if the device does not use multiple reports)
- *  \param[in] ReportType  Type of report to send, either REPORT_ITEM_TYPE_Out or REPORT_ITEM_TYPE_Feature
+ *  \param[in] ReportType  Type of report to send, either REPORT_TYPE_OUT or REPORT_TYPE_FEATURE
  *  \param[in] ReportLength  Length of the report to send
  */
 void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t ReportType, uint16_t ReportLength)
@@ -175,7 +175,7 @@ void WriteNextReport(uint8_t* ReportOUTData, uint8_t ReportIndex, uint8_t Report
 	
 	/* Not all HID devices have an OUT endpoint (some require OUT reports to be sent over the
 	 * control endpoint instead) - check to see if the OUT endpoint has been initialized */
-	if (Pipe_IsConfigured())
+	if (Pipe_IsConfigured() && (ReportType == REPORT_TYPE_OUT))
 	{
 		Pipe_Unfreeze();
 
diff --git a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h
index 3395e327828946d838141ecc9e47d8c104df2f17..1c6210ad286fadc37daf863daca981bc985dac1f 100644
--- a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h
+++ b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h
@@ -74,6 +74,15 @@
 		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
 		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
 		
+		/** HID Report Type to indicate an IN report. */
+		#define REPORT_TYPE_IN           1
+
+		/** HID Report Type to indicate an OUT report. */
+		#define REPORT_TYPE_OUT          2
+
+		/** HID Report Type to indicate a FEATURE report. */
+		#define REPORT_TYPE_FEATURE      3
+		
 	/* Function Prototypes: */
 		void SetupHardware(void);
 		void HID_Host_Task(void);
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index f3033173e09a98eb861eab207f5408233444b817..82718088719486208e5c7eb2b48fd2266bb28c35 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -90,9 +90,9 @@
 		/** Enum for the different types of HID reports. */
 		enum HID_ReportItemTypes_t
 		{
-			REPORT_ITEM_TYPE_In                   = 1, /**< Indicates that the item is an IN report type. */
-			REPORT_ITEM_TYPE_Out                  = 2, /**< Indicates that the item is an OUT report type. */
-			REPORT_ITEM_TYPE_Feature              = 3, /**< Indicates that the item is a FEATURE report type. */
+			REPORT_ITEM_TYPE_In                   = 0, /**< Indicates that the item is an IN report type. */
+			REPORT_ITEM_TYPE_Out                  = 1, /**< Indicates that the item is an OUT report type. */
+			REPORT_ITEM_TYPE_Feature              = 2, /**< Indicates that the item is a FEATURE report type. */
 		};
 
 		/** Type define for the HID class specific HID descriptor, to describe the HID device's specifications. Refer to the HID
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 996f716c151f898ac7869302a81b6b4e257ebb64..a69eb9a1d9448a99c3b5c91a78dd7c413aba40b7 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -21,6 +21,7 @@
   *
   *  <b>Fixed:</b>
   *  - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver
+  *  - Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser
   *
   *  \section Sec_ChangeLog091122 Version 091122
   *