diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index 243ae9ec8a99559cd5c4f1697b86f877edd31500..fcb86d661e4aff010c97609d66bb330f05727395 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -67,6 +67,7 @@ int main(void)
 	{
 		CheckJoystickMovement();
 		
+		/* Must acknowedge MIDI packets from the host even though they aren't used, or the host locks up */
 		MIDI_EventPacket_t DummyMIDIEvent;
 		MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &DummyMIDIEvent);
 	
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 7dfb0e780e155ed34012c14643ae08e90d3c48da..a52b037dc70e9c22dc7b6a9b7add1a7e5e41657a 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -137,7 +137,7 @@
 		/** Type define for a USB MIDI event packet, used to encapsulate sent and received MIDI messages from a USB MIDI interface. */
 		typedef struct
 		{
-			unsigned char Command     : 4; /**< MIDI command being sent or received in the event packet */
+			unsigned char Command     : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet */
 			unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface */
 			
 			uint8_t Data1; /**< First byte of data in the MIDI event */
diff --git a/LUFA/Drivers/USB/HighLevel/USBMode.h b/LUFA/Drivers/USB/HighLevel/USBMode.h
index 18a2666c6e46351064ca7edf79582cb078acddbd..ba221c520aac2c6fd13b2a6370a4438780533d42 100644
--- a/LUFA/Drivers/USB/HighLevel/USBMode.h
+++ b/LUFA/Drivers/USB/HighLevel/USBMode.h
@@ -50,7 +50,9 @@
 					#error USB_HOST_ONLY is not available for the currently selected USB AVR model.
 				#endif
 				
-				#define USB_DEVICE_ONLY
+				#if !defined(USB_DEVICE_ONLY)
+					#define USB_DEVICE_ONLY
+				#endif
 			#endif
 
 			#if (!defined(USB_DEVICE_ONLY) && !defined(USB_HOST_ONLY))