diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index e38d35a5a0217e7aa64556645deb6993c8075a92..1953d9fbcd8dc6fa23c394d99bf7d031dfc44e83 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -60,8 +60,9 @@ void HID_Device_ProcessControlRequest(USB_ClassInfo_HID_Device_t* const HIDInter
 				if (HIDInterfaceInfo->Config.PrevReportINBuffer != NULL)
 				  memcpy(HIDInterfaceInfo->Config.PrevReportINBuffer, ReportData, HIDInterfaceInfo->Config.PrevReportINBufferSize);
 
-				Endpoint_ClearSETUP();
 				Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
+
+				Endpoint_ClearSETUP();
 				Endpoint_Write_Control_Stream_LE(ReportData, ReportSize);
 				Endpoint_ClearOUT();
 			}
@@ -77,7 +78,7 @@ void HID_Device_ProcessControlRequest(USB_ClassInfo_HID_Device_t* const HIDInter
 
 				Endpoint_ClearSETUP();
 				Endpoint_Read_Control_Stream_LE(ReportData, ReportSize);
-				Endpoint_ClearIN();				
+				Endpoint_ClearIN();
 
 				CALLBACK_HID_Device_ProcessHIDReport(HIDInterfaceInfo, ReportID, ReportType, ReportData, ReportSize);
 			}
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h
index 2a8344b4cf4583a4be780607c61039088b6c344a..d7dbc3e9a84100bcc1fbd9fcc2d870ad8554aa53 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.h
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h
@@ -451,7 +451,7 @@
 			static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
 			static inline bool Endpoint_IsINReady(void)
 			{
-				return ((UEINTX & (1 << TXINI))  ? true : false);
+				return ((UEINTX & (1 << TXINI)) ? true : false);
 			}
 			
 			/** Determines if the selected OUT endpoint has received new packet.
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index a6d04ae127738301b77152a3bbf4e46f257b5a57..24dd943fbe7a45108fa6291afd531bba90b1df67 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -58,6 +58,7 @@
   *  - Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2
   *  - Fixed USB_Host_ClearPipeStall() incorrectly determining the endpoint direction from the currently selected pipe
   *  - Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode
+  *  - Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests
   *
   *  \section Sec_ChangeLog100807 Version 100807
   *  <b>New:</b>