diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.c b/Demos/Device/ClassDriver/AudioInput/Descriptors.c
index f1cb72df2ecdba94a3bf6b01d5deec60132df18e..ba8c00182c85de4102b6af848f97e7b50977f7a5 100644
--- a/Demos/Device/ClassDriver/AudioInput/Descriptors.c
+++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.c
@@ -104,13 +104,13 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_ControlInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Header,
 
 			.ACSpecification          = VERSION_BCD(01.00),
-			.TotalLength              = (sizeof(USB_Audio_Interface_AC_t) +
-			                             sizeof(USB_Audio_InputTerminal_t) +
-			                             sizeof(USB_Audio_OutputTerminal_t)),
+			.TotalLength              = (sizeof(USB_Audio_Descriptor_Interface_AC_t) +
+			                             sizeof(USB_Audio_Descriptor_InputTerminal_t) +
+			                             sizeof(USB_Audio_Descriptor_OutputTerminal_t)),
 			
 			.InCollection             = 1,
 			.InterfaceNumbers         = {1},
@@ -118,7 +118,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_InputTerminal = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_InputTerminal_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputTerminal,
 
 			.TerminalID               = 0x01,
@@ -134,7 +134,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_OutputTerminal = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_OutputTerminal_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputTerminal,
 
 			.TerminalID               = 0x02,
@@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_StreamInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AS_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_General,
 
 			.TerminalLink             = 0x02,
@@ -191,7 +191,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_AudioFormat = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Format_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Format_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Format,
 
 			.FormatType               = 0x01,
@@ -208,7 +208,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | AUDIO_STREAM_EPNUM),
 					.Attributes          = (EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA),
@@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_StreamEndpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 			
 			.Attributes               = 0x00,
diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.h b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
index 211bd057629ccb31a218b141f1f511deb8134282..caf6075cc9d389c4766fb3efab8148dee995a331 100644
--- a/Demos/Device/ClassDriver/AudioInput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
@@ -62,17 +62,17 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Audio_ControlInterface;
-			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC;
-			USB_Audio_InputTerminal_t             Audio_InputTerminal;
-			USB_Audio_OutputTerminal_t            Audio_OutputTerminal;
-			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt0;
-			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt1;
-			USB_Audio_Interface_AS_t              Audio_StreamInterface_SPC;
-			USB_Audio_Format_t                    Audio_AudioFormat;
-			USB_Audio_StreamEndpoint_Std_t        Audio_StreamEndpoint;
-			USB_Audio_StreamEndpoint_Spc_t        Audio_StreamEndpoint_SPC;
+			USB_Descriptor_Configuration_Header_t     Config;
+			USB_Descriptor_Interface_t                Audio_ControlInterface;
+			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
+			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
+			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
+			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
+			USB_Audio_Descriptor_Format_t             Audio_AudioFormat;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t Audio_StreamEndpoint;
+			USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
 		} USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
index 058ea7576684fd120ed8c2cf1a342ccff5e8851f..9f385017ada86613c10e5063dd972f5982888854 100644
--- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
+++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
@@ -104,13 +104,13 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 	
 	.Audio_ControlInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Header,
 			
 			.ACSpecification          = VERSION_BCD(01.00),
-			.TotalLength              = (sizeof(USB_Audio_Interface_AC_t) +
-			                             sizeof(USB_Audio_InputTerminal_t) +
-			                             sizeof(USB_Audio_OutputTerminal_t)),
+			.TotalLength              = (sizeof(USB_Audio_Descriptor_Interface_AC_t) +
+			                             sizeof(USB_Audio_Descriptor_InputTerminal_t) +
+			                             sizeof(USB_Audio_Descriptor_OutputTerminal_t)),
 			
 			.InCollection             = 1,
 			.InterfaceNumbers         = {1},
@@ -118,7 +118,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_InputTerminal = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_InputTerminal_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputTerminal,
 		
 			.TerminalID               = 0x01,
@@ -134,7 +134,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.Audio_OutputTerminal = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_OutputTerminal_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputTerminal,
 		
 			.TerminalID               = 0x02,
@@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_StreamInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AS_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_General,
 			
 			.TerminalLink             = 0x01,
@@ -191,7 +191,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_AudioFormat = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Format_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Format_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Format,
 
 			.FormatType               = 0x01,
@@ -208,7 +208,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | AUDIO_STREAM_EPNUM),
 					.Attributes          = (EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA),
@@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_StreamEndpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Spc_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 			
 			.Attributes               = EP_ACCEPTS_SMALL_PACKETS,
diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
index 6f487eda2f4474b48bcc4d4d8eefc87e70d0a35d..588f584e977222ca10c84b1e7f835080d21f9615 100644
--- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
@@ -62,17 +62,17 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Audio_ControlInterface;
-			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC;
-			USB_Audio_InputTerminal_t             Audio_InputTerminal;
-			USB_Audio_OutputTerminal_t            Audio_OutputTerminal;
-			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt0;
-			USB_Descriptor_Interface_t            Audio_StreamInterface_Alt1;
-			USB_Audio_Interface_AS_t              Audio_StreamInterface_SPC;
-			USB_Audio_Format_t                    Audio_AudioFormat;
-			USB_Audio_StreamEndpoint_Std_t        Audio_StreamEndpoint;
-			USB_Audio_StreamEndpoint_Spc_t        Audio_StreamEndpoint_SPC;
+			USB_Descriptor_Configuration_Header_t     Config;
+			USB_Descriptor_Interface_t                Audio_ControlInterface;
+			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
+			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
+			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
+			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
+			USB_Audio_Descriptor_Format_t             Audio_AudioFormat;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t Audio_StreamEndpoint;
+			USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
 		} USB_Descriptor_Configuration_t;
 		
 	/* Function Prototypes: */
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
index 0297c269dea6362ba544870cf310cad982169287..26d672c45826946a598cf0d123ac39021a9be4f5 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
@@ -130,7 +130,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_GenericHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 									 
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -229,7 +229,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_GenericHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &GenericReport;
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.h b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
index 95f57b94d5414e5ac52444dffcbc9580c5891b1c..23396f3f5a5469fb063c632056ddd562867c001b 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.h
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
@@ -51,7 +51,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_GenericHID;
+			USB_HID_Descriptor_HID_t              HID_GenericHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c
index b2f0f7efbdcd29e312d78b95fe41368a5074848f..217016fd3c35b399c9888b77821850b5c23c15d1 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.c
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c
@@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_JoystickHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_JoystickHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &JoystickReport;
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.h b/Demos/Device/ClassDriver/Joystick/Descriptors.h
index fe9939576171887dd37bf94806323396a578537f..0d7d456604f379244da434d09fd5e164c302f288 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.h
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.h
@@ -51,7 +51,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_JoystickHID;
+			USB_HID_Descriptor_HID_t              HID_JoystickHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
index 9bd952b404d08bcaadbd633363f266c69480af11..63114b18202941491257918c5d640e02f097b38c 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
@@ -146,7 +146,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_KeyboardHID = 
 		{  
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -245,7 +245,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_KeyboardHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &KeyboardReport;
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.h b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
index cdab88c1ea7e36c1de5187c59b42aa70d89550e5..25629fd64c8abc7824022459ead3c3827fc117e1 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
@@ -51,7 +51,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_KeyboardHID;
+			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 					
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
index dff0b8faca5917968e06ef7d41099363a6373bdd..4f7c55b0998351560b48050420907cef734c6471 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
@@ -179,7 +179,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID1_KeyboardHID = 
 		{  
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -216,7 +216,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID2_MouseHID = 
 		{  
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -317,12 +317,12 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			if (!(wIndex))
 			{
 				Address = &ConfigurationDescriptor.HID1_KeyboardHID;
-				Size    = sizeof(USB_HID_Descriptor_t);
+				Size    = sizeof(USB_HID_Descriptor_HID_t);
 			}
 			else
 			{
 				Address = &ConfigurationDescriptor.HID2_MouseHID;
-				Size    = sizeof(USB_HID_Descriptor_t);			
+				Size    = sizeof(USB_HID_Descriptor_HID_t);			
 			}
 			break;
 		case DTYPE_Report: 
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
index e4908f947ab585801512189f7584e7cd12bd53bf..b0d8f5a6ba065ce967d39cb970dc9070e6ab452d 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
@@ -51,10 +51,10 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID1_KeyboardInterface;
-			USB_HID_Descriptor_t                  HID1_KeyboardHID;
+			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
 			USB_Descriptor_Interface_t            HID2_MouseInterface;
-			USB_HID_Descriptor_t                  HID2_MouseHID;
+			USB_HID_Descriptor_HID_t              HID2_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 					
diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.c b/Demos/Device/ClassDriver/MIDI/Descriptors.c
index fc3addb95e1bb39607dd67a6a7181f689b143152..34595419df0e856124a122a1d22f19e1d92bf7ad 100644
--- a/Demos/Device/ClassDriver/MIDI/Descriptors.c
+++ b/Demos/Device/ClassDriver/MIDI/Descriptors.c
@@ -104,11 +104,11 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 	
 	.Audio_ControlInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Header,
 			
 			.ACSpecification          = VERSION_BCD(01.00),
-			.TotalLength              = sizeof(USB_Audio_Interface_AC_t),
+			.TotalLength              = sizeof(USB_Audio_Descriptor_Interface_AC_t),
 			
 			.InCollection             = 1,
 			.InterfaceNumbers         = {1},
@@ -132,7 +132,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_StreamInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_General,
 
 			.AudioSpecification       = VERSION_BCD(01.00),
@@ -143,7 +143,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_In_Jack_Emb = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EMBEDDED,
@@ -154,7 +154,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_In_Jack_Ext = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EXTERNAL,
@@ -165,7 +165,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_Out_Jack_Emb = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EMBEDDED,
@@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_Out_Jack_Ext = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EXTERNAL,
@@ -197,7 +197,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | MIDI_STREAM_OUT_EPNUM),
 					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
@@ -211,7 +211,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_In_Jack_Endpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 
 			.TotalEmbeddedJacks       = 0x01,
@@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | MIDI_STREAM_IN_EPNUM),
 					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
@@ -236,7 +236,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_Out_Jack_Endpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 
 			.TotalEmbeddedJacks       = 0x01,
diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.h b/Demos/Device/ClassDriver/MIDI/Descriptors.h
index 8165fedf696d675d71f7348c85ff0c99e1473da3..52ba98f060cc55691b325f5fb09a01e68ba2713a 100644
--- a/Demos/Device/ClassDriver/MIDI/Descriptors.h
+++ b/Demos/Device/ClassDriver/MIDI/Descriptors.h
@@ -59,19 +59,19 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Audio_ControlInterface;
-			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC;
-			USB_Descriptor_Interface_t            Audio_StreamInterface;
-			USB_MIDI_AudioInterface_AS_t          Audio_StreamInterface_SPC;
-			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Emb;
-			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Ext;
-			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Emb;
-			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Ext;
-			USB_Audio_StreamEndpoint_Std_t        MIDI_In_Jack_Endpoint;
-			USB_MIDI_Jack_Endpoint_t              MIDI_In_Jack_Endpoint_SPC;
-			USB_Audio_StreamEndpoint_Std_t        MIDI_Out_Jack_Endpoint;
-			USB_MIDI_Jack_Endpoint_t              MIDI_Out_Jack_Endpoint_SPC;
+			USB_Descriptor_Configuration_Header_t     Config;
+			USB_Descriptor_Interface_t                Audio_ControlInterface;
+			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+			USB_Descriptor_Interface_t                Audio_StreamInterface;
+			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
+			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
+			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Ext;
+			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Emb;
+			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Ext;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_In_Jack_Endpoint;
+			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_In_Jack_Endpoint_SPC;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_Out_Jack_Endpoint;
+			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_Out_Jack_Endpoint_SPC;
 		} USB_Descriptor_Configuration_t;
 		
 	/* Function Prototypes: */
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
index 1ff64290c29bcf7dd39f09c0b764f4ef796a89fa..c14e4c7c9f9bddef5ce618e9a99dd0bce9640a8f 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
@@ -195,7 +195,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_KeyboardHID = 
 		{  
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -294,7 +294,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID:
 			Address = &ConfigurationDescriptor.HID_KeyboardHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report:
 			Address = &KeyboardReport;
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
index 2f71fc252fc01708fb90035e6a8ee936eb326e96..678c8ec850faed6660c7207f6c80fdc42b1b5fd7 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
@@ -72,7 +72,7 @@
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
 			USB_Descriptor_Interface_t            HID_KeyboardInterface;
-			USB_HID_Descriptor_t                  HID_KeyboardHID;
+			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 		
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c
index 8fb71953d23981ffb14d83eaf122bca3bd4378bc..830255570de3664e71f0dff914ae91c01e09f953 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c
@@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_MouseHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_MouseHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &MouseReport;
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.h b/Demos/Device/ClassDriver/Mouse/Descriptors.h
index 2b1d7ce8898bffc30f88e67b9e410f623bf09f76..f482a694606d948dcfcb0c17212a0a2e8f5d5050 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.h
@@ -51,7 +51,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_MouseHID;
+			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 					
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
index f32af19922b3376554e9b3db676ec5cbe8358dcd..7d383a4cca66604b746e8c20f0598aa71187320c 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
@@ -252,7 +252,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_MouseHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -351,7 +351,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_MouseHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &MouseReport;
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
index 3e68492a39f9b227b303bb7a99e9d2c7fa7fc291..dfe6c114767cce9cef6bcc9484679570fa1eda92 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
@@ -83,7 +83,7 @@
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
 			USB_Descriptor_Interface_t               HID_Interface;
-			USB_HID_Descriptor_t                     HID_MouseHID;
+			USB_HID_Descriptor_HID_t                 HID_MouseHID;
 	        USB_Descriptor_Endpoint_t                HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
index 8fb71953d23981ffb14d83eaf122bca3bd4378bc..830255570de3664e71f0dff914ae91c01e09f953 100644
--- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
+++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
@@ -140,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_MouseHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -239,7 +239,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_MouseHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &MouseReport;
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
index 2b1d7ce8898bffc30f88e67b9e410f623bf09f76..f482a694606d948dcfcb0c17212a0a2e8f5d5050 100644
--- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
+++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
@@ -51,7 +51,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_MouseHID;
+			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 					
diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
index 677b96112b41229c6eedce076554747354955542..66c4f1302f4b04eb15c0d41972289da276c1a039 100644
--- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
+++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
@@ -129,7 +129,7 @@ int main(void)
 				
 				printf_P(PSTR("Device ID: %s.\r\n"), DeviceIDString);
 				
-				char  TestPageData[]    = "\033%-12345X\033E" "LUFA PCL Test Page" "\033E\033%-12345X";
+				char     TestPageData[] = "\033%-12345X\033E" "LUFA PCL Test Page" "\033E\033%-12345X";
 				uint16_t TestPageLength = strlen(TestPageData);
 			
 				printf_P(PSTR("Sending Test Page (%d bytes)...\r\n"), TestPageLength);
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index 99bdb365973ebdea8afda9cb55fd8d0091bfc7de..ec7f148a73eee3fde12dda5bd4848ed84beaee8f 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -236,103 +236,244 @@
 		#define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)
 		
 	/* Type Defines: */
-		/** \brief Audio class-specific Interface Descriptor.
+		/** \brief Audio class-specific Interface Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific interface descriptor. This follows a regular interface descriptor to
 		 *  supply extra information about the audio device's layout to the host. See the USB Audio specification for more
 		 *  details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_Interface_AC_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint16_t                ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */
+			uint16_t                TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
+			
+			uint8_t                 InCollection; /**< Total number of audio class interfaces within this device. */
+			uint8_t                 InterfaceNumbers[1]; /**< Interface numbers of each audio interface. */
+		} USB_Audio_Descriptor_Interface_AC_t;
+
+		/** \brief Audio class-specific Interface Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific interface descriptor. This follows a regular interface descriptor to
+		 *  supply extra information about the audio device's layout to the host. See the USB Audio specification for more
+		 *  details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_Interface_AC_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
 
-			uint16_t                  ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */
-			uint16_t                  TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint16_t bcdADC; /**< Binary coded decimal value, indicating the supported Audio Class specification version. */
+			uint16_t wTotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
 			
-			uint8_t                   InCollection; /**< Total number of audio class interfaces within this device. */
-			uint8_t                   InterfaceNumbers[1]; /**< Interface numbers of each audio interface. */
-		} USB_Audio_Interface_AC_t;
+			uint8_t  bInCollection; /**< Total number of audio class interfaces within this device. */
+			uint8_t  bInterfaceNumbers[1]; /**< Interface numbers of each audio interface. */
+		} USB_Audio_StdDescriptor_Interface_AC_t;
 		
-		/** \brief Audio class-specific Feature Unit Descriptor.
+		/** \brief Audio class-specific Feature Unit Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific Feature Unit descriptor. This indicates to the host what features
 		 *  are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio
 		 *  specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_FeatureUnit_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 			
-			uint8_t                   UnitID; /**< ID value of this feature unit - must be a unique value within the device. */
-			uint8_t                   SourceID; /**< Source ID value of the audio source input into this feature unit. */
+			uint8_t                 UnitID; /**< ID value of this feature unit - must be a unique value within the device. */
+			uint8_t                 SourceID; /**< Source ID value of the audio source input into this feature unit. */
 			
-			uint8_t                   ControlSize; /**< Size of each element in the ChanelControlls array. */
-			uint8_t                   ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */
+			uint8_t                 ControlSize; /**< Size of each element in the ChanelControlls array. */
+			uint8_t                 ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */
 			
-			uint8_t                   FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
-		} USB_Audio_FeatureUnit_t;
+			uint8_t                 FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_Descriptor_FeatureUnit_t;
 
-		/** \brief Audio class-specific Input Terminal Descriptor.
+		/** \brief Audio class-specific Feature Unit Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific Feature Unit descriptor. This indicates to the host what features
+		 *  are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio
+		 *  specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_FeatureUnit_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			
+			uint8_t bUnitID; /**< ID value of this feature unit - must be a unique value within the device. */
+			uint8_t bSourceID; /**< Source ID value of the audio source input into this feature unit. */
+			
+			uint8_t bControlSize; /**< Size of each element in the ChanelControlls array. */
+			uint8_t bmaControls[3]; /**< Feature masks for the control channel, and each separate audio channel. */
+			
+			uint8_t iFeature; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_StdDescriptor_FeatureUnit_t;
+
+		/** \brief Audio class-specific Input Terminal Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific input terminal descriptor. This indicates to the host that the device
 		 *  contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example,
 		 *  a USB endpoint). See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_InputTerminal_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 		
-			uint8_t                   TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
-			uint16_t                  TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
-			uint8_t                   AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals
+			uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
+			uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
+			uint8_t                 AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals
 			                                                     *   such as the speaker and microphone of a phone handset.
 			                                                     */
-			uint8_t                   TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */
-			uint16_t                  ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */
+			uint8_t                 TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */
+			uint16_t                ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */
 			
-			uint8_t                   ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device. */
-			uint8_t                   TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
-		} USB_Audio_InputTerminal_t;
+			uint8_t                 ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device. */
+			uint8_t                 TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_Descriptor_InputTerminal_t;
 
-		/** \brief Audio class-specific Output Terminal Descriptor.
+		/** \brief Audio class-specific Input Terminal Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific input terminal descriptor. This indicates to the host that the device
+		 *  contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example,
+		 *  a USB endpoint). See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_InputTerminal_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
+			uint16_t wTerminalType; /**< Type of terminal, a TERMINAL_* mask. */
+			uint8_t  bAssocTerminal; /**< ID of associated output terminal, for physically grouped terminals
+			                          *   such as the speaker and microphone of a phone handset.
+			                          */
+			uint8_t  bNrChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */
+			uint16_t wChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */
+			
+			uint8_t  iChannelNames; /**< Index of a string descriptor describing this channel within the device. */
+			uint8_t  iTerminal; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_StdDescriptor_InputTerminal_t;
+
+		/** \brief Audio class-specific Output Terminal Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific output terminal descriptor. This indicates to the host that the device
 		 *  contains an output audio sink, either to a physical terminal on the device, or a logical terminal (for example,
 		 *  a USB endpoint). See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_OutputTerminal_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 		
-			uint8_t                   TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
-			uint16_t                  TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
-			uint8_t                   AssociatedInputTerminal; /**< ID of associated input terminal, for physically grouped terminals
+			uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
+			uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
+			uint8_t                 AssociatedInputTerminal; /**< ID of associated input terminal, for physically grouped terminals
 			                                                    *   such as the speaker and microphone of a phone handset.
 			                                                    */
-			uint8_t                   SourceID; /**< ID value of the unit this terminal's audio is sourced from. */
+			uint8_t                 SourceID; /**< ID value of the unit this terminal's audio is sourced from. */
 			
-			uint8_t                   TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
-		} USB_Audio_OutputTerminal_t;
+			uint8_t                 TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_Descriptor_OutputTerminal_t;
+
+		/** \brief Audio class-specific Output Terminal Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific output terminal descriptor. This indicates to the host that the device
+		 *  contains an output audio sink, either to a physical terminal on the device, or a logical terminal (for example,
+		 *  a USB endpoint). See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_OutputTerminal_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		
+			uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
+			uint16_t wTerminalType; /**< Type of terminal, a TERMINAL_* mask. */
+			uint8_t  bAssocTerminal; /**< ID of associated input terminal, for physically grouped terminals
+			                          *   such as the speaker and microphone of a phone handset.
+			                          */
+			uint8_t  bSourceID; /**< ID value of the unit this terminal's audio is sourced from. */
+			
+			uint8_t  iTerminal; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_Audio_StdDescriptor_OutputTerminal_t;
 		
-		/** \brief Audio class-specific Streaming Audio Interface Descriptor.
+		/** \brief Audio class-specific Streaming Audio Interface Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific streaming interface descriptor. This indicates to the host
 		 *  how audio streams within the device are formatted. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_Interface_AS_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 			
-			uint8_t                   TerminalLink; /**< ID value of the output terminal this descriptor is describing. */
+			uint8_t                 TerminalLink; /**< ID value of the output terminal this descriptor is describing. */
 			
-			uint8_t                   FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */
-			uint16_t                  AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification. */
-		} USB_Audio_Interface_AS_t;
+			uint8_t                 FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */
+			uint16_t                AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification. */
+		} USB_Audio_Descriptor_Interface_AS_t;
+
+		/** \brief Audio class-specific Streaming Audio Interface Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific streaming interface descriptor. This indicates to the host
+		 *  how audio streams within the device are formatted. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_Interface_AS_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		
+			
+			uint8_t  bTerminalLink; /**< ID value of the output terminal this descriptor is describing. */
+			
+			uint8_t  bDelay; /**< Delay in frames resulting from the complete sample processing from input to output. */
+			uint16_t wFormatTag; /**< Format of the audio stream, see Audio Device Formats specification. */
+		} USB_Audio_StdDescriptor_Interface_AS_t;
 		
 		/** \brief 24-Bit Audio Frequency Structure.
 		 *
@@ -341,35 +482,67 @@
 		 */
 		typedef struct
 		{
-			uint16_t                  LowWord; /**< Low 16 bits of the 24-bit value. */
-			uint8_t                   HighByte; /**< Upper 8 bits of the 24-bit value. */
+			uint16_t    LowWord; /**< Low 16 bits of the 24-bit value. */
+			uint8_t     HighByte; /**< Upper 8 bits of the 24-bit value. */
 		} USB_Audio_SampleFreq_t;
 
-		/** \brief Audio class-specific Format Descriptor.
+		/** \brief Audio class-specific Format Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific audio format descriptor. This is used to give the host full details
 		 *  about the number of channels, the sample resolution, acceptable sample frequencies and encoding method used
 		 *  in the device's audio streams. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_Format_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint8_t                 FormatType; /**< Format of the audio stream, see Audio Device Formats specification. */
+			uint8_t                 Channels; /**< Total number of discrete channels in the stream. */
+			
+			uint8_t                 SubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */
+			uint8_t                 BitResolution; /**< Bits of resolution of each channel's samples in the stream. */
+
+			uint8_t                 SampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			
+			USB_Audio_SampleFreq_t  SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES]; /**< Sample frequencies supported by the device (must be 24-bit). */
+		} USB_Audio_Descriptor_Format_t;
+
+		/** \brief Audio class-specific Format Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific audio format descriptor. This is used to give the host full details
+		 *  about the number of channels, the sample resolution, acceptable sample frequencies and encoding method used
+		 *  in the device's audio streams. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_Format_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
 
-			uint8_t                   FormatType; /**< Format of the audio stream, see Audio Device Formats specification. */
-			uint8_t                   Channels; /**< Total number of discrete channels in the stream. */
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		
+
+			uint8_t  bFormatType; /**< Format of the audio stream, see Audio Device Formats specification. */
+			uint8_t  bNrChannels; /**< Total number of discrete channels in the stream. */
 			
-			uint8_t                   SubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */
-			uint8_t                   BitResolution; /**< Bits of resolution of each channel's samples in the stream. */
+			uint8_t  bSubFrameSize; /**< Size in bytes of each channel's sample data in the stream. */
+			uint8_t  bBitResolution; /**< Bits of resolution of each channel's samples in the stream. */
 
-			uint8_t                   SampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			
-			USB_Audio_SampleFreq_t    SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES]; /**< Sample frequencies supported by the device. */
-		} USB_Audio_Format_t;
+			uint8_t  bSampleFrequencyType; /**< Total number of sample frequencies supported by the device. */			
+			uint8_t  SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES * 3]; /**< Sample frequencies supported by the device (must be 24-bit). */
+		} USB_Audio_StdDescriptor_Format_t;
 		
-		/** \brief Audio class-specific Streaming Endpoint Descriptor.
+		/** \brief Audio class-specific Streaming Endpoint Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific endpoint descriptor. This contains a regular endpoint 
 		 *  descriptor with a few Audio-class-specific extensions. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_StreamEndpoint_Std_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
@@ -377,13 +550,46 @@
 
 			uint8_t                   Refresh; /**< Always set to zero for Audio class devices. */
 			uint8_t                   SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */
-		} USB_Audio_StreamEndpoint_Std_t;
+		} USB_Audio_Descriptor_StreamEndpoint_Std_t;
+
+		/** \brief Audio class-specific Streaming Endpoint Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific endpoint descriptor. This contains a regular endpoint 
+		 *  descriptor with a few Audio-class-specific extensions. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_StreamEndpoint_Std_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a
+									   *   value given by the specific class.
+									   */
+			uint8_t  bEndpointAddress; /**< Logical address of the endpoint within the device for the current 
+										*   configuration, including direction mask.
+										*/
+			uint8_t  bmAttributes; /**< Endpoint attributes, comprised of a mask of the endpoint type (EP_TYPE_*) 
+									*   and attributes (ENDPOINT_ATTR_*) masks.
+									*/
+			uint16_t wMaxPacketSize; /**< Size of the endpoint bank, in bytes. This indicates the maximum packet size
+									  *   that the endpoint can receive at a time.
+									  */
+			uint8_t  bInterval; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT or
+								 *   ISOCHRONOUS type.
+								 */
+								 
+			uint8_t  bRefresh; /**< Always set to zero for Audio class devices. */
+			uint8_t  bSynchAddress; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */
+		} USB_Audio_StdDescriptor_StreamEndpoint_Std_t;
 					
-		/** \brief Audio class-specific Extended Endpoint Descriptor.
+		/** \brief Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information
 		 *  on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio
 		 *  class-specific extended endpoint descriptor. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_StdDescriptor_StreamEndpoint_Spc_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
@@ -394,8 +600,32 @@
 
 			uint8_t                   LockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification. */
 			uint16_t                  LockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry. */
-		} USB_Audio_StreamEndpoint_Spc_t;
+		} USB_Audio_Descriptor_StreamEndpoint_Spc_t;
 
+		/** \brief Audio class-specific Extended Endpoint Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information
+		 *  on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio
+		 *  class-specific extended endpoint descriptor. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_Audio_Descriptor_StreamEndpoint_Spc_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */		
+			
+			uint8_t  bmAttributes; /**< Audio class-specific endpoint attributes, such as ACCEPTS_SMALL_PACKETS. */
+
+			uint8_t  bLockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification. */
+			uint16_t wLockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry. */
+		} USB_Audio_StdDescriptor_StreamEndpoint_Spc_t;
+		
 	/* Disable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			}
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index 739a7ab3322702406d13a05ff0f18d6e05dce0e8..4c7abc1069bf4e4a492a7de1b5044b8daf401c83 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -145,23 +145,49 @@
 			REPORT_ITEM_TYPE_Feature              = 2, /**< Indicates that the item is a FEATURE report type. */
 		};
 
-		/** \brief HID class-specific HID Descriptor.
+		/** \brief HID class-specific HID Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for the HID class-specific HID descriptor, to describe the HID device's specifications. Refer to the HID
 		 *  specification for details on the structure elements.
+		 *
+		 *  \see \ref USB_HID_StdDescriptor_HID_t for the version of this type with standard element names.
+		 */
+		typedef struct
+		{
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+				
+			uint16_t                HIDSpec; /**< BCD encoded version that the HID descriptor and device complies to. */
+			uint8_t                 CountryCode; /**< Country code of the localized device, or zero if universal. */
+		
+			uint8_t                 TotalReportDescriptors; /**< Total number of HID report descriptors for the interface. */
+
+			uint8_t                 HIDReportType; /**< Type of HID report, set to \ref DTYPE_Report. */
+			uint16_t                HIDReportLength; /**< Length of the associated HID report descriptor, in bytes. */
+		} USB_HID_Descriptor_HID_t;
+
+		/** \brief HID class-specific HID Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for the HID class-specific HID descriptor, to describe the HID device's specifications. Refer to the HID
+		 *  specification for details on the structure elements.
+		 *
+		 *  \see \ref USB_HID_Descriptor_HID_t for the version of this type with non-standard LUFA specific
+		 *       element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t  Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
 				
-			uint16_t                 HIDSpec; /**< BCD encoded version that the HID descriptor and device complies to. */
-			uint8_t                  CountryCode; /**< Country code of the localized device, or zero if universal. */
+			uint16_t bcdHID; /**< BCD encoded version that the HID descriptor and device complies to. */
+			uint8_t  bCountryCode; /**< Country code of the localized device, or zero if universal. */
 		
-			uint8_t                  TotalReportDescriptors; /**< Total number of HID report descriptors for the interface. */
+			uint8_t  bNumDescriptors; /**< Total number of HID report descriptors for the interface. */
 
-			uint8_t                  HIDReportType; /**< Type of HID report, set to \ref DTYPE_Report. */
-			uint16_t                 HIDReportLength; /**< Length of the associated HID report descriptor, in bytes. */
-		} USB_HID_Descriptor_t;
+			uint8_t  bDescriptorType2; /**< Type of HID report, set to \ref DTYPE_Report. */
+			uint16_t wDescriptorLength; /**< Length of the associated HID report descriptor, in bytes. */
+		} USB_HID_StdDescriptor_HID_t;
 
 		/** \brief Standard HID Boot Protocol Mouse Report.
 		 *
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 688ef09b321485882ec37538a8ece154c7871ba9..0c6223b5b63680666d4fd29e2d4f5f2e30c9448e 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -99,43 +99,95 @@
 		#define MIDI_CHANNEL(channel)        ((channel) - 1)
 		
 	/* Type Defines: */
-		/** \brief MIDI class-specific Streaming Interface Descriptor.
+		/** \brief MIDI class-specific Streaming Interface Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific MIDI streaming interface descriptor. This indicates to the host
 		 *  how MIDI the specification compliance of the device and the total length of the Audio class-specific descriptors.
 		 *  See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_MIDI_StdDescriptor_AudioInterface_AS_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 			
-			uint16_t                  AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class
+			uint16_t                AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class
 			                                               *   specification version.
 			                                               */
-			uint16_t                  TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
-		} USB_MIDI_AudioInterface_AS_t;
+			uint16_t                TotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
+		} USB_MIDI_Descriptor_AudioInterface_AS_t;
 		
-		/** \brief MIDI class-specific Input Jack Descriptor.
+		/** \brief MIDI class-specific Streaming Interface Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific MIDI streaming interface descriptor. This indicates to the host
+		 *  how MIDI the specification compliance of the device and the total length of the Audio class-specific descriptors.
+		 *  See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_MIDI_Descriptor_AudioInterface_AS_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			
+			uint16_t bcdMSC; /**< Binary coded decimal value, indicating the supported MIDI Class specification version. */
+			uint16_t wTotalLength; /**< Total length of the Audio class-specific descriptors, including this descriptor. */
+		} USB_MIDI_StdDescriptor_AudioInterface_AS_t;
+
+		/** \brief MIDI class-specific Input Jack Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific MIDI IN jack. This gives information to the host on a MIDI input, either
 		 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint).
+		 *
+		 *  \see \ref USB_MIDI_StdDescriptor_InputJack_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Header_t   Header; /**< Regular descriptor header containing the descriptor's type and length. */
-			uint8_t                   Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+			USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
+			uint8_t                 Subtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
 
-			uint8_t                   JackType; /**< Type of jack, one of the JACKTYPE_* mask values. */
-			uint8_t                   JackID; /**< ID value of this jack - must be a unique value within the device. */
+			uint8_t                 JackType; /**< Type of jack, one of the JACKTYPE_* mask values. */
+			uint8_t                 JackID; /**< ID value of this jack - must be a unique value within the device. */
 			
-			uint8_t                   JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
-		} USB_MIDI_In_Jack_t;
+			uint8_t                 JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_MIDI_Descriptor_InputJack_t;
+
 
-		/** \brief MIDI class-specific Output Jack Descriptor.
+		/** \brief MIDI class-specific Input Jack Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific MIDI IN jack. This gives information to the host on a MIDI input, either
+		 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint).
+		 *
+		 *  \see \ref USB_MIDI_Descriptor_InputJack_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint8_t  bJackType; /**< Type of jack, one of the JACKTYPE_* mask values. */
+			uint8_t  bJackID; /**< ID value of this jack - must be a unique value within the device. */
+			
+			uint8_t  iJack; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_MIDI_StdDescriptor_InputJack_t;
+
+		/** \brief MIDI class-specific Output Jack Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific MIDI OUT jack. This gives information to the host on a MIDI output, either
 		 *  a physical output jack, or a logical jack (sending output data internally, or to the host via an endpoint).
+		 *
+		 *  \see \ref USB_MIDI_StdDescriptor_OutputJack_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
@@ -150,13 +202,42 @@
 			uint8_t                   SourcePinID[1]; /**< Pin number in the input jack of each output pin's source data. */
 			
 			uint8_t                   JackStrIndex; /**< Index of a string descriptor describing this descriptor within the device. */
-		} USB_MIDI_Out_Jack_t;
+		} USB_MIDI_Descriptor_OutputJack_t;
 		
-		/** \brief Audio class-specific Jack Endpoint Descriptor.
+		/** \brief MIDI class-specific Output Jack Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific MIDI OUT jack. This gives information to the host on a MIDI output, either
+		 *  a physical output jack, or a logical jack (sending output data internally, or to the host via an endpoint).
+		 *
+		 *  \see \ref USB_MIDI_Descriptor_OutputJack_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint8_t  bJackType; /**< Type of jack, one of the JACKTYPE_* mask values. */
+			uint8_t  bJackID; /**< ID value of this jack - must be a unique value within the device. */
+			
+			uint8_t  bNrInputPins; /**< Number of output channels within the jack, either physical or logical. */
+			uint8_t  baSourceID[1]; /**< ID of each output pin's source data jack. */
+			uint8_t  baSourcePin[1]; /**< Pin number in the input jack of each output pin's source data. */
+			
+			uint8_t  iJack; /**< Index of a string descriptor describing this descriptor within the device. */
+		} USB_MIDI_StdDescriptor_OutputJack_t;
+
+		/** \brief Audio class-specific Jack Endpoint Descriptor (LUFA naming conventions).
 		 *
 		 *  Type define for an Audio class-specific extended MIDI jack endpoint descriptor. This contains extra information
 		 *  on the usage of MIDI endpoints used to stream MIDI events in and out of the USB Audio device, and follows an Audio
 		 *  class-specific extended MIDI endpoint descriptor. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_MIDI_StdDescriptor_Jack_Endpoint_t for the version of this type with standard element names.
 		 */
 		typedef struct
 		{
@@ -165,7 +246,29 @@
 
 			uint8_t                   TotalEmbeddedJacks; /**< Total number of jacks inside this endpoint. */
 			uint8_t                   AssociatedJackID[1]; /**< IDs of each jack inside the endpoint. */
-		} USB_MIDI_Jack_Endpoint_t;
+		} USB_MIDI_Descriptor_Jack_Endpoint_t;
+
+		/** \brief Audio class-specific Jack Endpoint Descriptor (USB-IF naming conventions).
+		 *
+		 *  Type define for an Audio class-specific extended MIDI jack endpoint descriptor. This contains extra information
+		 *  on the usage of MIDI endpoints used to stream MIDI events in and out of the USB Audio device, and follows an Audio
+		 *  class-specific extended MIDI endpoint descriptor. See the USB Audio specification for more details.
+		 *
+		 *  \see \ref USB_MIDI_Descriptor_Jack_Endpoint_t for the version of this type with non-standard LUFA specific
+		 *       element names.
+		 */
+		typedef struct
+		{
+			uint8_t  bLength; /**< Size of the descriptor, in bytes. */
+			uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
+				                      *   given by the specific class.
+				                      */
+
+			uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
+
+			uint8_t  bNumEmbMIDIJack; /**< Total number of jacks inside this endpoint. */
+			uint8_t  bAssocJackID[1]; /**< IDs of each jack inside the endpoint. */
+		} USB_MIDI_StdDescriptor_Jack_Endpoint_t;
 
 		/** \brief MIDI Class Driver Event Packet.
 		 *
diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c
index 66c044b563715a89f20c7a6b49fe6fc299ac3a8b..0642ecd40586f16b1e6f80a39a911820273e7a71 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.c
+++ b/LUFA/Drivers/USB/Class/Host/HID.c
@@ -69,7 +69,7 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo
 		return HID_ENUMERROR_NoHIDDescriptorFound;
 	}
 
-	HIDInterfaceInfo->State.HIDReportSize = DESCRIPTOR_CAST(ConfigDescriptorData, USB_HID_Descriptor_t).HIDReportLength;
+	HIDInterfaceInfo->State.HIDReportSize = DESCRIPTOR_CAST(ConfigDescriptorData, USB_HID_Descriptor_HID_t).HIDReportLength;
 
 	while (FoundEndpoints != (HID_FOUND_DATAPIPE_IN | HID_FOUND_DATAPIPE_OUT))
 	{
diff --git a/LUFA/Drivers/USB/Class/Host/Printer.h b/LUFA/Drivers/USB/Class/Host/Printer.h
index 6d581dd29a6bbd29ba9a81554c205218304e5e42..524547a472176dfaa5892e6a253801c0143a7e52 100644
--- a/LUFA/Drivers/USB/Class/Host/Printer.h
+++ b/LUFA/Drivers/USB/Class/Host/Printer.h
@@ -173,7 +173,7 @@
 			 *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
 			 */
 			uint8_t PRNT_Host_SendString(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo,
-			                             void* PrinterCommands, 
+			                             void* Buffer, 
 			                             const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
 			/** Determines the number of bytes received by the printer interface from the device, waiting to be read. This indicates the number
diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
index 94c7f291feae4dc120a9a9d9823ce01cd65a6eca..89c2c97cb2f8d4e105368aea1b8bd12608b4c536 100644
--- a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
+++ b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
@@ -220,7 +220,7 @@
              *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure
 			 *  uses LUFA-specific element names to make each element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_Header_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Header_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -235,7 +235,7 @@
 			 *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure
 			 *  uses the relevant standard's given element names to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_Header_t for the version of this define with non-standard LUFA specific element names.
+			 *  \see \ref USB_Descriptor_Header_t for the version of this type with non-standard LUFA specific element names.
 			 */
 			typedef struct
 			{
@@ -250,7 +250,7 @@
 			 *  Type define for a standard Device Descriptor. This structure uses LUFA-specific element names to make each
 			 *  element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_Device_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Device_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -299,7 +299,7 @@
 			 *  Type define for a standard Device Descriptor. This structure uses the relevant standard's given element names
 			 *  to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names.
+			 *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.
 			 */
 			typedef struct
 			{
@@ -347,7 +347,7 @@
 			 *  Type define for a standard Configuration Descriptor header. This structure uses LUFA-specific element names
 			 *  to make each element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -376,7 +376,7 @@
 			 *  Type define for a standard Configuration Descriptor header. This structure uses the relevant standard's given element names
 			 *  to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names.
+			 *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.
 			 */
 			typedef struct
 			{
@@ -404,7 +404,7 @@
 			 *  Type define for a standard Interface Descriptor. This structure uses LUFA-specific element names
 			 *  to make each element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_Interface_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Interface_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -430,7 +430,7 @@
 			 *  Type define for a standard Interface Descriptor. This structure uses the relevant standard's given element names
 			 *  to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_Interface_t for the version of this define with non-standard LUFA specific element names.
+			 *  \see \ref USB_Descriptor_Interface_t for the version of this type with non-standard LUFA specific element names.
 			 */
 			typedef struct
 			{
@@ -464,7 +464,7 @@
 			 *  together at the point of enumeration, loading one generic driver for all the interfaces in the single
 			 *  function. Read the ECN for more information.
 			 *
-			 *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -493,7 +493,7 @@
 			 *  together at the point of enumeration, loading one generic driver for all the interfaces in the single
 			 *  function. Read the ECN for more information.
 			 *
-			 *  \see \ref USB_Descriptor_Interface_Association_t for the version of this define with non-standard LUFA specific
+			 *  \see \ref USB_Descriptor_Interface_Association_t for the version of this type with non-standard LUFA specific
 			 *       element names.
 			 */
 			typedef struct
@@ -517,7 +517,7 @@
 			 *  Type define for a standard Endpoint Descriptor. This structure uses LUFA-specific element names
 			 *  to make each element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -542,7 +542,7 @@
 			 *  Type define for a standard Endpoint Descriptor. This structure uses the relevant standard's given
 			 *  element names to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_Endpoint_t for the version of this define with non-standard LUFA specific
+			 *  \see \ref USB_Descriptor_Endpoint_t for the version of this type with non-standard LUFA specific
 			 *       element names.
 			 */
 			typedef struct
@@ -576,7 +576,7 @@
 			 *
 			 *  This structure uses LUFA-specific element names to make each element's purpose clearer.
 			 *
-			 *  \see \ref USB_StdDescriptor_String_t for the version of this define with standard element names.
+			 *  \see \ref USB_StdDescriptor_String_t for the version of this type with standard element names.
 			 */
 			typedef struct
 			{
@@ -606,7 +606,7 @@
 			 *
 			 *  This structure uses the relevant standard's given element names to ensure compatibility with the standard.
 			 *
-			 *  \see \ref USB_Descriptor_String_t for the version of this define with with non-standard LUFA specific
+			 *  \see \ref USB_Descriptor_String_t for the version of this type with with non-standard LUFA specific
 			 *       element names.
 			 */
 			typedef struct
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index c92a944643c63a1ef40fcf8343cbaef902495f6d..e26f65865ab93523f9acfe9adb55e278717d211a 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -17,6 +17,7 @@
   *  - Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application
   *    handling of USB Start of Frame events while in USB Host mode
   *  - Added new PRNT_Host_BytesReceived() and PRNT_Host_ReceiveByte() functions to the Print Host Class driver
+  *  - Added class specific descriptor type defines with standard USB-IF element naming
   *
   *  <b>Changed:</b>
   *  - Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index d30d45d9afb39c8998be358b583cb8ed9db7fb83..485de4f7cacfd6f588c04bf2b5dd0994db310688 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -15,7 +15,6 @@
   *  - Code Features
   *      -# Add hub support when in Host mode for multiple devices
   *      -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error
-  *      -# Add standardized descriptor names to class driver structures
   *      -# Change makefiles to allow for absolute LUFA location to be used
   *      -# Re-add interrupt Pipe/Endpoint support
   *  - Documentation/Support
diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt
index ebeaaea6c0caa8db74879d7e28ac7bdb5a5822e3..54cb6ebb2c826a736284193f2825a87199241c38 100644
--- a/LUFA/ManPages/MigrationInformation.txt
+++ b/LUFA/ManPages/MigrationInformation.txt
@@ -22,10 +22,14 @@
  *    - The signature for the CALLBACK_USB_GetDescriptor() callback has changed, the "void** const DescriptorAddress" parameter is
  *      now "const void** const DescriptorAddress". Existing applications should update their callback signatures to match this, and
  *      eliminate any casting of descriptor pointers to a non-const pointer.
+ *    - The names of the class specific descriptor type defines in the USB Class drivers have changed - refer to the driver documentation
+ *      for each class driver for the new class specific descriptor type names.
  *
  *  <b>Host Mode</b>
  *    - The PRNT_Host_SendData() function has been renamed to \ref PRNT_Host_SendString(). Existing applications should simply
  *      replace all references to the obsolete function name with the new function name.
+ *    - The names of the class specific descriptor type defines in the USB Class drivers have changed - refer to the driver documentation
+ *      for each class driver for the new class specific descriptor type names.
  *
  * \section Sec_Migration100807 Migrating from 100513 to 100807
  *
diff --git a/Projects/Incomplete/MIDIToneGenerator/Descriptors.c b/Projects/Incomplete/MIDIToneGenerator/Descriptors.c
index fc3addb95e1bb39607dd67a6a7181f689b143152..34595419df0e856124a122a1d22f19e1d92bf7ad 100644
--- a/Projects/Incomplete/MIDIToneGenerator/Descriptors.c
+++ b/Projects/Incomplete/MIDIToneGenerator/Descriptors.c
@@ -104,11 +104,11 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 	
 	.Audio_ControlInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_Header,
 			
 			.ACSpecification          = VERSION_BCD(01.00),
-			.TotalLength              = sizeof(USB_Audio_Interface_AC_t),
+			.TotalLength              = sizeof(USB_Audio_Descriptor_Interface_AC_t),
 			
 			.InCollection             = 1,
 			.InterfaceNumbers         = {1},
@@ -132,7 +132,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.Audio_StreamInterface_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_AudioInterface_AS_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_General,
 
 			.AudioSpecification       = VERSION_BCD(01.00),
@@ -143,7 +143,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_In_Jack_Emb = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EMBEDDED,
@@ -154,7 +154,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_In_Jack_Ext = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_In_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_InputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EXTERNAL,
@@ -165,7 +165,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_Out_Jack_Emb = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EMBEDDED,
@@ -180,7 +180,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.MIDI_Out_Jack_Ext = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Out_Jack_t), .Type = DTYPE_AudioInterface},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_AudioInterface},
 			.Subtype                  = DSUBTYPE_OutputJack,
 			
 			.JackType                 = MIDI_JACKTYPE_EXTERNAL,
@@ -197,7 +197,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_OUT | MIDI_STREAM_OUT_EPNUM),
 					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
@@ -211,7 +211,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_In_Jack_Endpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 
 			.TotalEmbeddedJacks       = 0x01,
@@ -222,7 +222,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		{
 			.Endpoint = 
 				{
-					.Header              = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
+					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
 
 					.EndpointAddress     = (ENDPOINT_DESCRIPTOR_DIR_IN | MIDI_STREAM_IN_EPNUM),
 					.Attributes          = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
@@ -236,7 +236,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 		
 	.MIDI_Out_Jack_Endpoint_SPC = 
 		{
-			.Header                   = {.Size = sizeof(USB_MIDI_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
+			.Header                   = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_AudioEndpoint},
 			.Subtype                  = DSUBTYPE_General,
 
 			.TotalEmbeddedJacks       = 0x01,
diff --git a/Projects/Incomplete/MIDIToneGenerator/Descriptors.h b/Projects/Incomplete/MIDIToneGenerator/Descriptors.h
index 8165fedf696d675d71f7348c85ff0c99e1473da3..52ba98f060cc55691b325f5fb09a01e68ba2713a 100644
--- a/Projects/Incomplete/MIDIToneGenerator/Descriptors.h
+++ b/Projects/Incomplete/MIDIToneGenerator/Descriptors.h
@@ -59,19 +59,19 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Audio_ControlInterface;
-			USB_Audio_Interface_AC_t              Audio_ControlInterface_SPC;
-			USB_Descriptor_Interface_t            Audio_StreamInterface;
-			USB_MIDI_AudioInterface_AS_t          Audio_StreamInterface_SPC;
-			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Emb;
-			USB_MIDI_In_Jack_t                    MIDI_In_Jack_Ext;
-			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Emb;
-			USB_MIDI_Out_Jack_t                   MIDI_Out_Jack_Ext;
-			USB_Audio_StreamEndpoint_Std_t        MIDI_In_Jack_Endpoint;
-			USB_MIDI_Jack_Endpoint_t              MIDI_In_Jack_Endpoint_SPC;
-			USB_Audio_StreamEndpoint_Std_t        MIDI_Out_Jack_Endpoint;
-			USB_MIDI_Jack_Endpoint_t              MIDI_Out_Jack_Endpoint_SPC;
+			USB_Descriptor_Configuration_Header_t     Config;
+			USB_Descriptor_Interface_t                Audio_ControlInterface;
+			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+			USB_Descriptor_Interface_t                Audio_StreamInterface;
+			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
+			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
+			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Ext;
+			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Emb;
+			USB_MIDI_Descriptor_OutputJack_t          MIDI_Out_Jack_Ext;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_In_Jack_Endpoint;
+			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_In_Jack_Endpoint_SPC;
+			USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_Out_Jack_Endpoint;
+			USB_MIDI_Descriptor_Jack_Endpoint_t       MIDI_Out_Jack_Endpoint_SPC;
 		} USB_Descriptor_Configuration_t;
 		
 	/* Function Prototypes: */
diff --git a/Projects/Magstripe/Descriptors.c b/Projects/Magstripe/Descriptors.c
index eb2b72b1e87504a8271272228eead75a0996219e..41c1c4bda480019c3ff135b69fa6c146b65c3b3b 100644
--- a/Projects/Magstripe/Descriptors.c
+++ b/Projects/Magstripe/Descriptors.c
@@ -138,7 +138,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_KeyboardHID = 
 		{  
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 			
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -236,7 +236,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID:
 			Address = &ConfigurationDescriptor.HID_KeyboardHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report:
 			Address = &KeyboardReport;
diff --git a/Projects/Magstripe/Descriptors.h b/Projects/Magstripe/Descriptors.h
index 850d6bc24ed6ad06fb22d11360dd9d84462a5ba8..7180bf3e7bd7a9f23708073ac4aeed8904647815 100644
--- a/Projects/Magstripe/Descriptors.h
+++ b/Projects/Magstripe/Descriptors.h
@@ -52,7 +52,7 @@
 		{
 			USB_Descriptor_Configuration_Header_t Config; /**< Configuration descriptor header structure */
 			USB_Descriptor_Interface_t            HID_Interface; /**< Keyboard interface descriptor */
-			USB_HID_Descriptor_t                  HID_KeyboardHID; /**< Keyboard HID descriptor */
+			USB_HID_Descriptor_HID_t              HID_KeyboardHID; /**< Keyboard HID descriptor */
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
 		} USB_Descriptor_Configuration_t;
 					
diff --git a/Projects/TempDataLogger/Descriptors.c b/Projects/TempDataLogger/Descriptors.c
index d6e89603ce444ff817918069ce596214527be87b..1b8a4a2f926571eb96b13736b7932f7f93210118 100644
--- a/Projects/TempDataLogger/Descriptors.c
+++ b/Projects/TempDataLogger/Descriptors.c
@@ -178,7 +178,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 
 	.HID_GenericHID = 
 		{
-			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = DTYPE_HID},
 									 
 			.HIDSpec                = VERSION_BCD(01.11),
 			.CountryCode            = 0x00,
@@ -277,7 +277,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_HID: 
 			Address = &ConfigurationDescriptor.HID_GenericHID;
-			Size    = sizeof(USB_HID_Descriptor_t);
+			Size    = sizeof(USB_HID_Descriptor_HID_t);
 			break;
 		case DTYPE_Report: 
 			Address = &GenericReport;
diff --git a/Projects/TempDataLogger/Descriptors.h b/Projects/TempDataLogger/Descriptors.h
index 7f65cab338045b50adcb5443b5162883936a5fda..a4916ace124a86f757f960f606455ee2a572fbc9 100644
--- a/Projects/TempDataLogger/Descriptors.h
+++ b/Projects/TempDataLogger/Descriptors.h
@@ -49,7 +49,7 @@
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
 			USB_Descriptor_Interface_t            HID_Interface;
-			USB_HID_Descriptor_t                  HID_GenericHID;
+			USB_HID_Descriptor_HID_t              HID_GenericHID;
 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;