diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index 925248d13a504e74ef79e043c9a0a50bd6496acb..2d9e35b726ac6582c53067d82d5494a5c8178915 100644
--- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@ -235,7 +235,10 @@ ISR(USB_COM_vect, ISR_BLOCK)
 {
 	uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint();
 
+	USB_INT_Disable(USB_INT_RXSTPI);
+	sei();
 	USB_USBTask();
+	USB_INT_Enable(USB_INT_RXSTPI);
 
 	USB_INT_Clear(USB_INT_RXSTPI);
 	
diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.h b/LUFA/Drivers/USB/LowLevel/USBInterrupt.h
index cccf26ac865047038ab0eb651cc8aeb0179fcddc..e46e7597b91ee340068af838ed0e51e3ed0784de 100644
--- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.h
+++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.h
@@ -43,6 +43,7 @@
 
 	/* Includes: */
 		#include <avr/io.h>
+		#include <avr/interrupt.h>
 		#include <stdbool.h>
 		
 		#include "../../../Common/Common.h"
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index b99faaca6fe89dfa68872b0b3ecc887e3d327474..4c292849c355ad180cf82a6b123de798984b3e01 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -60,6 +60,8 @@
   *  - Fixed Set Configuration requests not being stalled until the host has set the device's address
   *  - Fixed Host mode HID class driver not sending the correct report type when HID_Host_SendReportByID() was called and the 
   *    HID_HOST_BOOT_PROTOCOL_ONLY compile time option is set
+  *  - Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occuring while the control endpoint
+  *    request is being processed, causing possible lockups if a USB interrupt occurs during a transfer
   *
   *  \section Sec_ChangeLog100219 Version 100219
   *