diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index 933091a5bc78ca8bb7005ed18905e93d4beb55ef..89eb6419d424f9c3ee953c4f6e0fea427c0697db 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -195,6 +195,11 @@
 			 *  This event is time-critical; each packet within the request transaction must be acknowledged or
 			 *  sent within 50ms or the host will abort the transfer.
 			 *
+			 *  The library interally handles all standard control requests with the exceptions of SYNC FRAME,
+			 *  SET DESCRIPTOR and SET INTERFACE. These and all other non-standard control requests will be left
+			 *  for the user to process via this event if desired. If not handled in the user application, requests
+			 *  are automatically STALLed.
+			 *
 			 *  \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
 			 *        \ref Group_USBManagement documentation).
 			 *
diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.h b/LUFA/Drivers/USB/HighLevel/USBTask.h
index 9c0abf013163ccdd0de6c56a840dee3094436b46..cc0601548d1949286da955b7ae187585df204f4a 100644
--- a/LUFA/Drivers/USB/HighLevel/USBTask.h
+++ b/LUFA/Drivers/USB/HighLevel/USBTask.h
@@ -76,7 +76,7 @@
 			 extern USB_Request_Header_t USB_ControlRequest;
 			
 			#if defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__)
-				#if !defined(HOST_STATE_AS_GPIOR1) || defined(__DOXYGEN__)
+				#if !defined(HOST_STATE_AS_GPIOR) || defined(__DOXYGEN__)
 					/** Indicates the current host state machine state. When in host mode, this indicates the state
 					 *  via one of the values of the \ref USB_Host_States_t enum values.
 					 *
@@ -100,7 +100,7 @@
 				#else
 					#define _GET_HOST_GPIOR_NAME2(y) GPIOR ## y
 					#define _GET_HOST_GPIOR_NAME(x)  _GET_HOST_GPIOR_NAME2(x)
-					#define USB_HostState _GET_HOST_GPIOR_NAME(HOST_STATE_AS_GPIOR)
+					#define USB_HostState            _GET_HOST_GPIOR_NAME(HOST_STATE_AS_GPIOR)
 				#endif
 			#endif
 
@@ -132,7 +132,7 @@
 				#else
 					#define _GET_DEVICE_GPIOR_NAME2(y) GPIOR ## y
 					#define _GET_DEVICE_GPIOR_NAME(x)  _GET_DEVICE_GPIOR_NAME2(x)
-					#define USB_DeviceState _GET_DEVICE_GPIOR_NAME(DEVICE_STATE_AS_GPIOR)
+					#define USB_DeviceState            _GET_DEVICE_GPIOR_NAME(DEVICE_STATE_AS_GPIOR)
 				#endif
 			#endif
 
@@ -175,7 +175,7 @@
 			#endif
 			
 		/* Macros: */
-			#define HOST_TASK_NONBLOCK_WAIT(duration, nextstate) {USB_HostState = HOST_STATE_WaitForDevice; WaitMSRemaining = duration; PostWaitState = nextstate; }
+			#define HOST_TASK_NONBLOCK_WAIT(duration, nextstate) MACROS{USB_HostState = HOST_STATE_WaitForDevice; WaitMSRemaining = duration; PostWaitState = nextstate; }MACROE
 	#endif
 	
 	/* Disable C linkage for C++ Compilers: */
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index d58a070aff21d4a2a2d8641a3b0dd60ec7899232..84fa2a617c37aefcaa123fce8998c21426dd0425 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -48,6 +48,7 @@
   *  - Corrected HID descriptor in the Joystick Device demos - buttons should be placed outside the pointer collection
   *  - Fixed HID report parser collection paths invalid due to misplaced semicolon in the free path item search loop
   *  - Fixed HID host Class driver report send/receive report broken when issued through the control pipe
+  *  - Fixed HOST_STATE_AS_GPIOR compile time option being ignored when in host mode (thanks to David Lyons)
   *
   *  \section Sec_ChangeLog090924 Version 090924
   *