diff --git a/Bootloaders/TeensyHID/TeensyHID.h b/Bootloaders/TeensyHID/TeensyHID.h
index 484fb6b3ac027be5df92bf9e0bce3ee854c791e7..3c59605954b822ac0a1cb7509749099c584fe44a 100644
--- a/Bootloaders/TeensyHID/TeensyHID.h
+++ b/Bootloaders/TeensyHID/TeensyHID.h
@@ -50,7 +50,7 @@
 		#include <LUFA/Drivers/USB/USB.h>
 		
 	/* Preprocessor Checks: */
-		#if !defined(__AVR_AT90USB162__)
+		#if !defined(__AVR_AT90USB162__) && !defined(__AVR_AT90USB646__)
 			#error This bootloader is not compatible with the selected AVR model.
 		#endif
 
diff --git a/Demos/Device/ClassDriver/CDC/CDC.c b/Demos/Device/ClassDriver/CDC/CDC.c
index 8ecfb7b373492bbc7e97aa4aa81d05b85e31daf1..cc8abe4166b0603e850b6d9d931ca2992c5f8683 100644
--- a/Demos/Device/ClassDriver/CDC/CDC.c
+++ b/Demos/Device/ClassDriver/CDC/CDC.c
@@ -107,7 +107,7 @@ void CheckJoystickMovement(void)
 	char*       ReportString  = NULL;
 	static bool ActionSent    = false;
 	
-	char* JoystickStrings[] =
+	char* const JoystickStrings[] =
 		{
 			"Joystick Up\r\n",
 			"Joystick Down\r\n",
diff --git a/Demos/Device/ClassDriver/DualCDC/DualCDC.c b/Demos/Device/ClassDriver/DualCDC/DualCDC.c
index 82bfdc8f76aebefbdb263a646f343b236c5d58f1..adc17aed36ee5105d8b51b2679a3cf52806d009a 100644
--- a/Demos/Device/ClassDriver/DualCDC/DualCDC.c
+++ b/Demos/Device/ClassDriver/DualCDC/DualCDC.c
@@ -144,7 +144,7 @@ void CheckJoystickMovement(void)
 	char*       ReportString  = NULL;
 	static bool ActionSent = false;
 
-	char* JoystickStrings[] =
+	char* const JoystickStrings[] =
 		{
 			"Joystick Up\r\n",
 			"Joystick Down\r\n",
diff --git a/Demos/Device/Incomplete/Sideshow/Descriptors.c b/Demos/Device/Incomplete/Sideshow/Descriptors.c
index 3aaaa80313a8ab5aadc2d4e17a04c472ee5cce18..275892b9ba5edde619c3c6d2adf9d1aeee9bb00a 100644
--- a/Demos/Device/Incomplete/Sideshow/Descriptors.c
+++ b/Demos/Device/Incomplete/Sideshow/Descriptors.c
@@ -42,7 +42,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	Endpoint0Size:          8,
 		
 	VendorID:               0x03EB,
-	ProductID:              0xDC03,
+	ProductID:              0x2060,
 	ReleaseNumber:          0x0000,
 		
 	ManufacturerStrIndex:   0x01,
diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
index 5edefa9967d5b30d32bb0d50991c66bcc110c18f..20545a40e83b32e2337b7d74594cebf5a5ab630a 100644
--- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
@@ -143,7 +143,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 		USB_DeviceState = DEVICE_STATE_Powered;
 		EVENT_USB_Connect();
 		#else
-		USB_DeviceState = DEVICE_STATE_Configured;
+		USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Addressed;
 		EVENT_USB_WakeUp();		
 		#endif
 	}