diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.c b/Demos/Device/ClassDriver/AudioInput/AudioInput.c
index af0f6d2c78572a6aff15d2ffc3b58ba9577357c5..7b7ca2c11bb8d4eaf9713cdb91a64cf0d1ac7a19 100644
--- a/Demos/Device/ClassDriver/AudioInput/AudioInput.c
+++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.c
@@ -49,11 +49,6 @@ USB_ClassInfo_Audio_Device_t Microphone_Audio_Interface =
 				.DataINEndpointNumber     = AUDIO_STREAM_EPNUM,
 				.DataINEndpointSize       = AUDIO_STREAM_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
index f859c7c6e6df05e35df2d7dd4bb1688644c4bba3..129fca5f1d7ce684672b48e747619534478f24df 100644
--- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
+++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
@@ -49,11 +49,6 @@ USB_ClassInfo_Audio_Device_t Speaker_Audio_Interface =
 				.DataINEndpointNumber     = AUDIO_STREAM_EPNUM,
 				.DataINEndpointSize       = AUDIO_STREAM_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/CDC/CDC.c b/Demos/Device/ClassDriver/CDC/CDC.c
index 95e1a69195f948ba901d194999e2e3b675d36dca..3e83ec2696e3e07a6eda91b1fc7709043382bc20 100644
--- a/Demos/Device/ClassDriver/CDC/CDC.c
+++ b/Demos/Device/ClassDriver/CDC/CDC.c
@@ -55,11 +55,6 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
 				.NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM,
 				.NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/DualCDC/DualCDC.c b/Demos/Device/ClassDriver/DualCDC/DualCDC.c
index adc17aed36ee5105d8b51b2679a3cf52806d009a..0de83e1d9f2cc924fb24d12cb1b68f1c29afff6c 100644
--- a/Demos/Device/ClassDriver/DualCDC/DualCDC.c
+++ b/Demos/Device/ClassDriver/DualCDC/DualCDC.c
@@ -56,11 +56,6 @@ USB_ClassInfo_CDC_Device_t VirtualSerial1_CDC_Interface =
 				.NotificationEndpointNumber = CDC1_NOTIFICATION_EPNUM,
 				.NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** LUFA CDC Class driver interface configuration and state information. This structure is
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.c b/Demos/Device/ClassDriver/GenericHID/GenericHID.c
index 3f9c40281f3f999323fabdee35d1b1f20f7596f2..72063b6fa74babd5b56002a863252edb61e3e340 100644
--- a/Demos/Device/ClassDriver/GenericHID/GenericHID.c
+++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.c
@@ -51,11 +51,6 @@ USB_ClassInfo_HID_Device_t Generic_HID_Interface =
 				
 				.ReportINBufferSize      = GENERIC_REPORT_SIZE,
 			},
-
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/Joystick/Joystick.c b/Demos/Device/ClassDriver/Joystick/Joystick.c
index 1e13e9933a2566c3775b4d635dd0770b31566035..9a1080c539423c2ce5a216896bfe4a01dc8b9f65 100644
--- a/Demos/Device/ClassDriver/Joystick/Joystick.c
+++ b/Demos/Device/ClassDriver/Joystick/Joystick.c
@@ -51,11 +51,6 @@ USB_ClassInfo_HID_Device_t Joystick_HID_Interface =
 				
 				.ReportINBufferSize      = sizeof(USB_JoystickReport_Data_t),
 			},
-	
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/Keyboard/Keyboard.c b/Demos/Device/ClassDriver/Keyboard/Keyboard.c
index af56a228cbef6a7ad8ec8685fa8cf8ae1b23defd..ba0d2396fc8f15f9adce92a6e7516a93d9b23a9e 100644
--- a/Demos/Device/ClassDriver/Keyboard/Keyboard.c
+++ b/Demos/Device/ClassDriver/Keyboard/Keyboard.c
@@ -52,11 +52,6 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface =
 
 				.ReportINBufferSize      = sizeof(USB_KeyboardReport_Data_t),
 			},
-		
-		.State =
-			{
-				.IdleCount               = 500,
-			}
     };
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
index 5c33eebe16dc601c05c6341649c47841b97fb292..241553c2a59de023d9b476cdf23c0985ac957940 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
+++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
@@ -53,11 +53,6 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface =
 				
 				.ReportINBufferSize      = sizeof(USB_KeyboardReport_Data_t),
 			},
-
-		.State =
-			{
-				.IdleCount               = 500,
-			}
 	};
 	
 /** LUFA HID Class driver interface configuration and state information. This structure is
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index a6c31ee478540bc9230dae2a8fb645ce6ab72763..243ae9ec8a99559cd5c4f1697b86f877edd31500 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -52,11 +52,6 @@ USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface =
 				.DataOUTEndpointNumber    = MIDI_STREAM_OUT_EPNUM,
 				.DataOUTEndpointSize      = MIDI_STREAM_EPSIZE,
 			},
-			
-		.State =
-			{
-				// Leave all state values to their defaults			
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/MassStorage/MassStorage.c b/Demos/Device/ClassDriver/MassStorage/MassStorage.c
index 0a6604cfb28d3354f12292c04e9aac35f82f24ac..6a4612e4cde3458c4a54d90002ce06d36b150b90 100644
--- a/Demos/Device/ClassDriver/MassStorage/MassStorage.c
+++ b/Demos/Device/ClassDriver/MassStorage/MassStorage.c
@@ -54,11 +54,6 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
 
 				.TotalLUNs              = TOTAL_LUNS,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/Mouse/Mouse.c b/Demos/Device/ClassDriver/Mouse/Mouse.c
index 45d14a38ef217ee1732b8b8077c9b6b9210fdf82..4bb1fa1dc00ced6c4d6b70e13b69cf6265562094 100644
--- a/Demos/Device/ClassDriver/Mouse/Mouse.c
+++ b/Demos/Device/ClassDriver/Mouse/Mouse.c
@@ -51,11 +51,6 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface =
 
 				.ReportINBufferSize      = sizeof(USB_MouseReport_Data_t),
 			},
-			
-		.State =
-			{
-				// Leave all state values to their defaults
-			}			
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c
index ed071845564d95f15dd9ed7922cdda944a3b4ddc..81d31c9cd5d728b2213ff36d7dc22304404d568e 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c
+++ b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c
@@ -58,11 +58,6 @@ USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface =
 				.AdapterVendorDescription   = "LUFA RNDIS Demo Adapter",
 				.AdapterMACAddress          = {ADAPTER_MAC_ADDRESS},
 			},
-			
-		.State =
-			{
-				// Leave all state values to their defaults			
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c b/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
index 637071a7e3ff3d24fa889150d35822348ed98942..e51963c7a491d8a111fca5101314fb31e209d92b 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
+++ b/Demos/Device/ClassDriver/USBtoSerial/USBtoSerial.c
@@ -61,11 +61,6 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
 				.NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM,
 				.NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
index 291e8359e39204b2c3ef5e633ed4e17f85f09e6c..0cbb771227645b825a268966d79f1d43c6d732b9 100644
--- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c
+++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
@@ -48,11 +48,6 @@ USB_ClassInfo_CDC_Host_t VirtualSerial_CDC_Interface =
 				.DataOUTPipeNumber      = 2,
 				.NotificationPipeNumber = 3,
 			},
-			
-		.State =
-			{
-				// Leave all state values to their defaults			
-			}
 	};
 
 	
diff --git a/Demos/Host/ClassDriver/MouseHost/MouseHost.c b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
index 6913ec3cba01c4e88c9f1bc740d940cde24ae231..61d7d7bb6f7c642981303ab307becfed5f337cfd 100644
--- a/Demos/Host/ClassDriver/MouseHost/MouseHost.c
+++ b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
@@ -50,11 +50,6 @@ USB_ClassInfo_HID_Host_t Mouse_HID_Interface =
 				.MatchInterfaceProtocol = true,
 				.HIDInterfaceProtocol   = 0x02,
 			},
-			
-		.State =
-			{
-				// Leave all state values to their defaults			
-			}
 	};
 
 	
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.c b/LUFA/Drivers/USB/Class/Device/Audio.c
index 116921e6ef690923e25e5a90025731f466ff3256..b018d66863dc79c9344d5971e5f9f9f486707cb3 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.c
+++ b/LUFA/Drivers/USB/Class/Device/Audio.c
@@ -59,6 +59,8 @@ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const Audio
 
 bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)
 {
+	memset(&AudioInterfaceInfo->State, 0x00, sizeof(AudioInterfaceInfo->State));
+
 	if (AudioInterfaceInfo->Config.DataINEndpointNumber)
 	{
 		if (!(Endpoint_ConfigureEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_ISOCHRONOUS,
@@ -78,7 +80,7 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac
 			return false;
 		}
 	}
-
+	
 	return true;
 }
 
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index 767f75451cd11fb025ed4eb51320805cafe162f0..eef7f90497a26a75c0fc56897dac1a920f1c44cc 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -91,8 +91,7 @@
 												*   of the Audio Streaming interface.
 												*/
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */				
 			} USB_ClassInfo_Audio_Device_t;
 		
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.c b/LUFA/Drivers/USB/Class/Device/CDC.c
index 237e1dd2fa947d1c2a186b03ac4379797915efd6..0359afe4d28ddcdf5f9194da14a7ea6b48c49447 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.c
+++ b/LUFA/Drivers/USB/Class/Device/CDC.c
@@ -87,6 +87,8 @@ void CDC_Device_ProcessControlPacket(USB_ClassInfo_CDC_Device_t* CDCInterfaceInf
 
 bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
 {
+	memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
+
 	if (!(Endpoint_ConfigureEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
 							         ENDPOINT_DIR_IN, CDCInterfaceInfo->Config.DataINEndpointSize,
 							         ENDPOINT_BANK_SINGLE)))
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 17e9b35d72ee5ebe407ff97efb6ba5bae07bc48d..2a8f1ecd8fd5edb146b1e96d6c81d2a4f64893ee 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -102,8 +102,7 @@
 						uint8_t  DataBits; /**< Bits of data per character of the virtual serial port */
 					} LineEncoding;			
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */
 			} USB_ClassInfo_CDC_Device_t;
 		
diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index f292c633e7c011e9c60dd7b210d38dbd62bae0f9..43f11ee7ce81e0e9677f2b78389bc614ba70a0aa 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -135,6 +135,8 @@ void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* const HIDInterf
 
 bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
 {
+	memset(&HIDInterfaceInfo->State, 0x00, sizeof(HIDInterfaceInfo->State));
+	HIDInterfaceInfo->State.IdleCount = 500;
 	HIDInterfaceInfo->State.UsingReportProtocol = true;
 
 	if (!(Endpoint_ConfigureEndpoint(HIDInterfaceInfo->Config.ReportINEndpointNumber, EP_TYPE_INTERRUPT,
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index e4a919dedf57a63b2ae95ce47420b6a5255fa7e4..87f96c6808edece5144a3f3a5b1b6b7efb9cae9b 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -83,8 +83,7 @@
 					uint16_t IdleMSRemaining; /**< Total number of ms remaining before the idle period elapsed - this should be
 											   *   decremented by the user application if non-zero each millisecond */			
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */
 			} USB_ClassInfo_HID_Device_t;
 	
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.c b/LUFA/Drivers/USB/Class/Device/MIDI.c
index 364327595540efa6fdf645d6f4f91cd884046e8f..ed3aaa7231aa0856fba84125e6b5376aa17e8ed2 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.c
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.c
@@ -40,6 +40,8 @@ void MIDI_Device_ProcessControlPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInt
 
 bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
 {
+	memset(&MIDIInterfaceInfo->State, 0x00, sizeof(MIDIInterfaceInfo->State));
+
 	if (MIDIInterfaceInfo->Config.DataINEndpointNumber)
 	{
 		if (!(Endpoint_ConfigureEndpoint(MIDIInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index 66330a1d47682f5b2dd7cb9618a459cae82086be..980ddc5bf2c7672edac1337790e9476437c407db 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -80,8 +80,7 @@
 				{
 					// No state information for this class yet
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */
 			} USB_ClassInfo_MIDI_Device_t;	
 	
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.c b/LUFA/Drivers/USB/Class/Device/MassStorage.c
index 9f8688c1dff77a22c783a1231ac517dbe592153f..6160641bf0912df5149d21bcc47df3b95f080da8 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.c
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.c
@@ -74,6 +74,8 @@ void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* const MSInterface
 
 bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
 {
+	memset(&MSInterfaceInfo->State, 0x00, sizeof(MSInterfaceInfo->State));
+
 	if (!(Endpoint_ConfigureEndpoint(MSInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
 							         ENDPOINT_DIR_IN, MSInterfaceInfo->Config.DataINEndpointSize,
 							         ENDPOINT_BANK_SINGLE)))
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index 22f7160b50fcd2aef0a12d241bb83fd9be9d983f..cd7a8ef1d7bd4e6b8fb7852f1aa95d968d5993fe 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -89,8 +89,7 @@
 											*   and that all current Mass Storage operations should immediately abort
 											*/
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */
 			} USB_ClassInfo_MS_Device_t;
 
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.c b/LUFA/Drivers/USB/Class/Device/RNDIS.c
index 37771c646fe5051a25fe8439e20fe7253be52f37..8131d87576bfc4f0e225fc968274aa6e41414507 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.c
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.c
@@ -112,6 +112,8 @@ void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* const RNDIS
 
 bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo)
 {
+	memset(&RNDISInterfaceInfo->State, 0x00, sizeof(RNDISInterfaceInfo->State));
+
 	if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
 							         ENDPOINT_DIR_IN, RNDISInterfaceInfo->Config.DataINEndpointSize,
 							         ENDPOINT_BANK_SINGLE)))
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index 2aaf261d6812e9add0d4a5477d38f275456588ca..8855aac175642dbc5b79c7a2630d32af94fb7f79 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -97,8 +97,7 @@
 													 *   user application
 													 */
 				} State; /**< State data for the USB class interface within the device. All elements in this section
-				          *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when
-				          *   the interface is enumerated.
+				          *   are reset to their defaults when the interface is enumerated.
 				          */
 			} USB_ClassInfo_RNDIS_Device_t;
 	
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.c b/LUFA/Drivers/USB/Class/Host/CDC.c
index 4402f3386579de3e1e6134c2355e96c74aa9d2b8..9c59b5c2d00e984e34f2922ea7106bcf85679e26 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.c
+++ b/LUFA/Drivers/USB/Class/Host/CDC.c
@@ -39,6 +39,8 @@ uint8_t CDC_Host_ConfigurePipes(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint
 {
 	uint8_t  FoundEndpoints = 0;
 
+	memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
+
 	if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)
 	  return CDC_ENUMERROR_InvalidConfigDescriptor;
 	
diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c
index 8639b4836750458d729910693ff9aeb2fd3d7cf5..6652cdcbe6eed2189ac4f8536ce65735c4badab6 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.c
+++ b/LUFA/Drivers/USB/Class/Host/HID.c
@@ -39,6 +39,8 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, uint
 {
 	uint8_t  FoundEndpoints = 0;
 
+	memset(&HIDInterfaceInfo->State, 0x00, sizeof(HIDInterfaceInfo->State));
+
 	if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)
 	  return HID_ENUMERROR_InvalidConfigDescriptor;
 	
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index f96168f37d45549f988999c6e36ae5c8e47c7091..ff34ff2ed83a067fbce446b1ca91633d53d8d728 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -62,7 +62,7 @@
   *    to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while trasferring data
   *  - Make Pipe_ConfigurePipe() mask the given endpoint number against PIPE_EPNUM_MASK to ensure the endpoint IN direction bit is
   *    cleared to prevent endpoint type corruption
-  *  - Fix documentation mentioning Pipe_GetCurrentToken() function when real name is Pipe_GetPipeToken()
+  *  - Fixed documentation mentioning Pipe_GetCurrentToken() function when correct function name is Pipe_GetPipeToken()
   *  - Fixed ADC driver for the ATMEGA32U4 and ATMEGA16U4 (thanks to Opendous Inc.)
   *  - Fixed CDCHost demo unfreezing the pipes at the point of configuration, rather than use
   *  - Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command
diff --git a/LUFA/ManPages/DirectorySummaries.txt b/LUFA/ManPages/DirectorySummaries.txt
index 3b2c15fcab84967a462d023ebe614d30a5d4d72f..c6691d7d88d21f19c5f7a0a0e43a8f8987da2978 100644
--- a/LUFA/ManPages/DirectorySummaries.txt
+++ b/LUFA/ManPages/DirectorySummaries.txt
@@ -33,7 +33,7 @@
  *  
  *  This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with
  *  the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be
- *  included by the user application - the dispatch header file located in the parent AT90USBXXX directory should be used
+ *  included by the user application - the dispatch header file located in the parent directory should be used
  *  instead.
  *
  *  \dir LUFA/Drivers/USB
diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt
index 5ea8d9c1662e272de0cedb046abc610a797b5499..be84c36b832b006d4d095bbc765c1dfc9f79d43b 100644
--- a/LUFA/ManPages/MigrationInformation.txt
+++ b/LUFA/ManPages/MigrationInformation.txt
@@ -35,7 +35,7 @@
  *    - The \ref CALLBACK_USB_GetDescriptor() function now takes an extra parameter to specify the descriptor's memory space so that
  *      descriptors in mixed memory spaces can be used. The previous functionality can be returned by defining the USE_FLASH_DESCRIPTORS
  *      token in the project makefile to fix all descriptors into FLASH space and remove the extra function parameter.
- *    - Removed USB_IsSuspended - test \ref USB_DeviceState against \ref DEVICE_STATE_Suspended instead.
+ *    - The USB_IsSuspended global has been removed - test \ref USB_DeviceState against \ref DEVICE_STATE_Suspended instead.
  *
  *
  * \section Sec_Migration090605 Migrating from 090510 to 090605
diff --git a/Projects/Benito/Benito.c b/Projects/Benito/Benito.c
index 2f0317daa8cdf408fa48072826cd9594ddbfdf0a..9e85fbd2f3f22a66c1981d003e04e64afd7b220a 100644
--- a/Projects/Benito/Benito.c
+++ b/Projects/Benito/Benito.c
@@ -67,11 +67,6 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
 				.NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM,
 				.NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial
diff --git a/Projects/Magstripe/Magstripe.c b/Projects/Magstripe/Magstripe.c
index 087e5109e162cfe4d494d2e807a24087a87708fb..aaa432d20992d71a175a0ccdba5549728306fba6 100644
--- a/Projects/Magstripe/Magstripe.c
+++ b/Projects/Magstripe/Magstripe.c
@@ -60,11 +60,6 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface =
 				
 				.ReportINBufferSize      = sizeof(USB_KeyboardReport_Data_t),
 			},
-		
-		.State =
-			{
-				// Leave all state values to their defaults				
-			}
 	};
 
 /** Main program entry point. This routine contains the overall program flow, including initial