diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c
index 606b3dfeda74346f71bd5696ecf97b3fdce71e47..94d09f356841e323433b6fee783923dcc756b742 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.c
+++ b/LUFA/Drivers/USB/Class/Host/HID.c
@@ -362,7 +362,7 @@ uint8_t HID_Host_SetIdlePeriod(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo,
 {
 	USB_ControlRequest = (USB_Request_Header_t)
 		{
-			.bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_INTERFACE),
+			.bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE),
 			.bRequest      = HID_REQ_SetIdle,
 			.wValue        = ((MS << 6) & 0xFF00),
 			.wIndex        = HIDInterfaceInfo->State.InterfaceNumber,
@@ -371,7 +371,7 @@ uint8_t HID_Host_SetIdlePeriod(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo,
 
 	Pipe_SelectPipe(PIPE_CONTROLPIPE);
 
-	return USB_Host_SendControlRequest(HIDReportData);
+	return USB_Host_SendControlRequest(NULL);
 }
 
 #if !defined(HID_HOST_BOOT_PROTOCOL_ONLY)
diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h
index b9d8f68d6a01031a7ea43a45e30bfa2a8d2f048b..a0bef784a386a344c29a844382777169544b7033 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.h
+++ b/LUFA/Drivers/USB/Class/Host/HID.h
@@ -261,7 +261,7 @@
 			 *  \return A value from the \ref USB_Host_SendControlErrorCodes_t enum.
 			 */
 			uint8_t HID_Host_SetIdlePeriod(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo,
-			                               const uint16_t MS);
+			                               const uint16_t MS) ATTR_NON_NULL_PTR_ARG(1);
 
 			#if !defined(HID_HOST_BOOT_PROTOCOL_ONLY)
 			/** Switches the attached HID device's reporting protocol over to the standard Report protocol mode. This also retrieves