diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
index b7e8fd7b8d2e37653fe130ba671a6a8ec80c4994..b0655bb14a2a5d707239f0ff258108e0137987ba 100644
--- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
+++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c
@@ -231,12 +231,14 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
 	*/
 	bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
 
+	(void)HostReady;
+
 	if (CDCInterfaceInfo == &VirtualSerial1_CDC_Interface)
 	{
-		// CDC interface 1's host is ready to send/receive data
+		// CDC interface 1's host is ready to send/receive data if HostReady is true
 	}
 	else
 	{
-		// CDC interface 2's host is ready to send/receive data
+		// CDC interface 2's host is ready to send/receive data if HostReady is true
 	}
 }
diff --git a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c
index 9149efc0eacd10630ba0f21343a77eb0fae1f999..2c9261554d6c3d188546a1c3706003457f28031b 100644
--- a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c
+++ b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c
@@ -199,4 +199,6 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
 	   in the pending data from the USB endpoints.
 	*/
 	bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
+
+	(void)HostReady;
 }
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
index 692578c1a3135449eebac87a1bd675c63a4cc1bc..5410eb11f3e850942692e7d821380f69a4669495 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.c
@@ -238,6 +238,8 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
 	   in the pending data from the USB endpoints.
 	*/
 	bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
+
+	(void)HostReady;
 }
 
 /** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
index 7a21bfb7f55488f5dfd898b8e07b769116f26071..0eeacdf127a846b241e437d10982ffac7e18555d 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
@@ -279,4 +279,6 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
 	   in the pending data from the USB endpoints.
 	*/
 	bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
+
+	(void)HostReady;
 }
diff --git a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
index e33ca07d4fee50a55ac914c835b3267b5444be42..92fe48097fa4f3fb53379778579314dd8818c64d 100644
--- a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
@@ -188,7 +188,7 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioIn
 	return true;
 }
 
-void Audio_Device_Event_Stub(void)
+void Audio_Device_Event_Stub(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
 {
 
 }
diff --git a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
index c03f4b79d9d5d037d1fe5c86d5237d5969e5334f..1b37077325f4e646a8d7822c08ce5b1a0dd4cb5f 100644
--- a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
@@ -377,7 +377,7 @@
 	#if !defined(__DOXYGEN__)
 		/* Function Prototypes: */
 			#if defined(__INCLUDE_FROM_AUDIO_DEVICE_C)
-				void Audio_Device_Event_Stub(void);
+				void Audio_Device_Event_Stub(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 
 				void EVENT_Audio_Device_StreamStartStop(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
 				                                        ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub);
diff --git a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
index 6813decd782299b5253711a598ba21a85a46c6d3..8b6b48c2559a0b32a200a483d4863fa00ca9cf1d 100644
--- a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
@@ -355,10 +355,15 @@ void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDC
 	}
 #endif
 
-void CDC_Device_Event_Stub(void)
+void CDC_Device_Event_Stub(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
 
 }
 
+void CDC_Device_Event_Stub_2(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t _1)
+{
+	CDC_Device_Event_Stub(CDCInterfaceInfo);
+}
+
 #endif
 
diff --git a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
index 318920f55696874b3ed257b47a0ca00c4708c22a..2e327ef22984ea31418af13a12ce68db17a75d00 100644
--- a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
@@ -370,7 +370,8 @@
 				static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
 				#endif
 
-				void CDC_Device_Event_Stub(void);
+				void CDC_Device_Event_Stub(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
+				void CDC_Device_Event_Stub_2(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t _1);
 
 				void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 				                                          ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
@@ -378,7 +379,7 @@
 				                                             ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
 				void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
 				                                const uint8_t Duration) ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1)
-				                                ATTR_ALIAS(CDC_Device_Event_Stub);
+				                                ATTR_ALIAS(CDC_Device_Event_Stub_2);
 			#endif
 
 	#endif
diff --git a/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c b/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
index 7de87482b24bf43f58d2c46bfece2984d966bb93..3e60ddd66c8768ed907265cffb9b844488677e44 100644
--- a/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
@@ -305,7 +305,7 @@ static int PRNT_Device_getchar_Blocking(FILE* Stream)
 }
 #endif
 
-void PRNT_Device_Event_Stub(void)
+void PRNT_Device_Event_Stub(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo)
 {
 
 }
diff --git a/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h b/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h
index 036a04b4cfc182e02aa11f4c608a431f37cbadf7..6290078e13c43a8d728c7cdcf017feff701859e5 100644
--- a/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h
@@ -273,7 +273,7 @@
 				static int PRNT_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
 				#endif
 
-				void PRNT_Device_Event_Stub(void);
+				void PRNT_Device_Event_Stub(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo);
 
 				void EVENT_PRNT_Device_SoftReset(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo)
 				                                 ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(PRNT_Device_Event_Stub);
diff --git a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
index d463c667b6f77ff67dfcf05f9ccdd249745a2cff..83cf6ea12c6097e601cd19808c7e71f7a0f64164 100644
--- a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
@@ -505,7 +505,7 @@ uint8_t CDC_Host_Flush(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
 	}
 #endif
 
-void CDC_Host_Event_Stub(void)
+void CDC_Host_Event_Stub(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
 {
 
 }
diff --git a/LUFA/Drivers/USB/Class/Host/CDCClassHost.h b/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
index c933e3aee0f95388a9e5c263d30a73ccf030442d..306bf23d1ced35d012c463366b7ae07b509182a7 100644
--- a/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
@@ -368,7 +368,7 @@
 				static int CDC_Host_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
 				#endif
 
-				void CDC_Host_Event_Stub(void);
+				void CDC_Host_Event_Stub(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo);
 
 				void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
 				                                           ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Host_Event_Stub);
diff --git a/LUFA/Drivers/USB/Core/Events.c b/LUFA/Drivers/USB/Core/Events.c
index 8ae2ad9680017f955d47edf8bd343a587898e1cc..df21f504511a35e874689aadf0090134348b6a96 100644
--- a/LUFA/Drivers/USB/Core/Events.c
+++ b/LUFA/Drivers/USB/Core/Events.c
@@ -37,3 +37,12 @@ void USB_Event_Stub(void)
 
 }
 
+void USB_Event_Stub_2(const uint8_t _1)
+{
+	USB_Event_Stub();
+}
+
+void USB_Event_Stub_3(const uint8_t _1, const uint8_t _2)
+{
+	USB_Event_Stub();
+}
diff --git a/LUFA/Drivers/USB/Core/Events.h b/LUFA/Drivers/USB/Core/Events.h
index c82245ff5f946c4e95eaf0efe8e7a292d05a3fd1..9f72f41ebabf16a482ecf575dfcc70854dbbcb41 100644
--- a/LUFA/Drivers/USB/Core/Events.h
+++ b/LUFA/Drivers/USB/Core/Events.h
@@ -332,19 +332,21 @@
 		/* Function Prototypes: */
 			#if defined(__INCLUDE_FROM_EVENTS_C)
 				void USB_Event_Stub(void);
+				void USB_Event_Stub_2(const uint8_t _1);
+				void USB_Event_Stub_3(const uint8_t _1, const uint8_t _2);
 
 				#if defined(USB_CAN_BE_BOTH)
 					void EVENT_USB_UIDChange(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
 				#endif
 
 				#if defined(USB_CAN_BE_HOST)
-					void EVENT_USB_Host_HostError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
+					void EVENT_USB_Host_HostError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub_2);
 					void EVENT_USB_Host_DeviceAttached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
 					void EVENT_USB_Host_DeviceUnattached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
 					void EVENT_USB_Host_DeviceEnumerationComplete(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
 					void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
                                                                 const uint8_t SubErrorCode)
-					                                            ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
+					                                            ATTR_WEAK ATTR_ALIAS(USB_Event_Stub_3);
 					void EVENT_USB_Host_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
 				#endif