diff --git a/LUFA/Drivers/USB/LowLevel/USBController.c b/LUFA/Drivers/USB/LowLevel/USBController.c
index 7177e2b0e240bff45cb7b20a9698e3c8aaf2ba30..49bd05b641f3764fae8790abf7d9ad197bbc9eea 100644
--- a/LUFA/Drivers/USB/LowLevel/USBController.c
+++ b/LUFA/Drivers/USB/LowLevel/USBController.c
@@ -130,32 +130,36 @@ void USB_ResetInterface(void)
 
 	USB_CLK_Unfreeze();
 
-	#if defined(USB_DEVICE_ONLY) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
-	UHWCON |=  (1 << UIMOD);
-	USB_Init_Device();
-	#elif defined(USB_HOST_ONLY)
-	UHWCON &= ~(1 << UIMOD);
-	USB_Init_Host();
-	#elif defined(USB_CAN_BE_BOTH)
+	#if defined(USB_CAN_BE_BOTH)
 	if (UIDModeSelectEnabled)
 	{
 		UHWCON |= (1 << UIDE);
 		USB_INT_Enable(USB_INT_IDTI);
 	}
+	#endif
 	
 	if (USB_CurrentMode == USB_MODE_DEVICE)
 	{
+		#if defined(USB_CAN_BE_DEVICE)
+		#if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
 		UHWCON |=  (1 << UIMOD);
+		#endif
+		
 		USB_Init_Device();
+		#endif
 	}
 	else
 	{
+		#if defined(USB_CAN_BE_HOST)
 		UHWCON &= ~(1 << UIMOD);
 		USB_Init_Host();
+		#endif
 	}
-	#endif
 	
+	#if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
 	USB_OTGPAD_On();
+	#endif
+	
 	USB_Attach();
 }