diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c
index 8f4177e0751cf52320f413fc02e807b600bf92ab..266710e6663b3faf54bacb9e6717e3267ac0add5 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.c
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c
@@ -58,18 +58,18 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
 	0x75, 0x08,          /*     Report Size (8)                                */
 	0x95, 0x02,          /*     Report Count (2)                               */
 	0x81, 0x82,          /*     Input (Data, Variable, Absolute, Volatile)     */
-	0x05, 0x09,          /*     Usage Page (Button)                            */
-	0x09, 0x02,          /*     Usage (Button 2)                               */
-	0x09, 0x01,          /*     Usage (Button 1)                               */
-	0x15, 0x00,          /*     Logical Minimum (0)                            */
-	0x25, 0x01,          /*     Logical Maximum (1)                            */
-	0x75, 0x01,          /*     Report Size (1)                                */
-	0x95, 0x02,          /*     Report Count (2)                               */
-	0x81, 0x02,          /*     Input (Data, Variable, Absolute)               */
-	0x75, 0x06,          /*     Report Size (6)                                */
-	0x95, 0x01,          /*     Report Count (1)                               */
-	0x81, 0x01,          /*     Input (Constant)                               */
 	0xc0,                /*   End Collection                                   */
+	0x05, 0x09,          /*   Usage Page (Button)                              */
+	0x09, 0x02,          /*   Usage (Button 2)                                 */
+	0x09, 0x01,          /*   Usage (Button 1)                                 */
+	0x15, 0x00,          /*   Logical Minimum (0)                              */
+	0x25, 0x01,          /*   Logical Maximum (1)                              */
+	0x75, 0x01,          /*   Report Size (1)                                  */
+	0x95, 0x02,          /*   Report Count (2)                                 */
+	0x81, 0x02,          /*   Input (Data, Variable, Absolute)                 */
+	0x75, 0x06,          /*   Report Size (6)                                  */
+	0x95, 0x01,          /*   Report Count (1)                                 */
+	0x81, 0x01,          /*   Input (Constant)                                 */
 	0xc0                 /* End Collection                                     */
 };
 
diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.c b/Demos/Device/LowLevel/Joystick/Descriptors.c
index 63f3adce2be36b8427a175003919d6251d3516a8..911d7dbf44ed746a08922d87b872911cd4d4f564 100644
--- a/Demos/Device/LowLevel/Joystick/Descriptors.c
+++ b/Demos/Device/LowLevel/Joystick/Descriptors.c
@@ -58,18 +58,18 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
 	0x75, 0x08,          /*     Report Size (8)                                */
 	0x95, 0x02,          /*     Report Count (2)                               */
 	0x81, 0x82,          /*     Input (Data, Variable, Absolute, Volatile)     */
-	0x05, 0x09,          /*     Usage Page (Button)                            */
-	0x09, 0x02,          /*     Usage (Button 2)                               */
-	0x09, 0x01,          /*     Usage (Button 1)                               */
-	0x15, 0x00,          /*     Logical Minimum (0)                            */
-	0x25, 0x01,          /*     Logical Maximum (1)                            */
-	0x75, 0x01,          /*     Report Size (1)                                */
-	0x95, 0x02,          /*     Report Count (2)                               */
-	0x81, 0x02,          /*     Input (Data, Variable, Absolute)               */
-	0x75, 0x06,          /*     Report Size (6)                                */
-	0x95, 0x01,          /*     Report Count (1)                               */
-	0x81, 0x01,          /*     Input (Constant)                               */
 	0xc0,                /*   End Collection                                   */
+	0x05, 0x09,          /*   Usage Page (Button)                              */
+	0x09, 0x02,          /*   Usage (Button 2)                                 */
+	0x09, 0x01,          /*   Usage (Button 1)                                 */
+	0x15, 0x00,          /*   Logical Minimum (0)                              */
+	0x25, 0x01,          /*   Logical Maximum (1)                              */
+	0x75, 0x01,          /*   Report Size (1)                                  */
+	0x95, 0x02,          /*   Report Count (2)                                 */
+	0x81, 0x02,          /*   Input (Data, Variable, Absolute)                 */
+	0x75, 0x06,          /*   Report Size (6)                                  */
+	0x95, 0x01,          /*   Report Count (1)                                 */
+	0x81, 0x01,          /*   Input (Constant)                                 */
 	0xc0                 /* End Collection                                     */
 };
 
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.c b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
index 50afb61be26bf633ce38a315e345082a6b65aca1..89c4e2998cefccac9285981f8dc846f9670f99ab 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.c
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
@@ -121,7 +121,7 @@ static void USB_Device_SetAddress(void)
 
 	Endpoint_ClearSETUP();
 	
-	Endpoint_ClearIN();
+	Endpoint_ClearStatusStage();
 	
 	while (!(Endpoint_IsINReady()))
 	{
@@ -190,7 +190,7 @@ static void USB_Device_SetConfiguration(void)
 
 	USB_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue;
 
-	Endpoint_ClearIN();
+	Endpoint_ClearStatusStage();
 
 	if (USB_ConfigurationNumber)
 	  USB_DeviceState = DEVICE_STATE_Configured;
@@ -205,16 +205,9 @@ void USB_Device_GetConfiguration(void)
 	Endpoint_ClearSETUP();
 
 	Endpoint_Write_Byte(USB_ConfigurationNumber);
-	
 	Endpoint_ClearIN();
 
-	while (!(Endpoint_IsOUTReceived()))
-	{
-		if (USB_DeviceState == DEVICE_STATE_Unattached)
-		  return;	
-	}
-
-	Endpoint_ClearOUT();
+	Endpoint_ClearStatusStage();
 }
 
 #if !defined(NO_INTERNAL_SERIAL) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
@@ -251,7 +244,9 @@ static void USB_Device_GetInternalSerialDescriptor(void)
 	}
 	
 	Endpoint_ClearSETUP();
+
 	Endpoint_Write_Control_Stream_LE(&SignatureDescriptor, sizeof(SignatureDescriptor));
+
 	Endpoint_ClearOUT();
 }
 #endif
@@ -334,16 +329,9 @@ static void USB_Device_GetStatus(void)
 	Endpoint_ClearSETUP();
 
 	Endpoint_Write_Word_LE(CurrentStatus);
-
 	Endpoint_ClearIN();
 	
-	while (!(Endpoint_IsOUTReceived()))
-	{
-		if (USB_DeviceState == DEVICE_STATE_Unattached)
-		  return;	
-	}
-	
-	Endpoint_ClearOUT();
+	Endpoint_ClearStatusStage();
 }
 
 static void USB_Device_ClearSetFeature(void)
@@ -391,7 +379,7 @@ static void USB_Device_ClearSetFeature(void)
 
 	Endpoint_ClearSETUP();
 
-	Endpoint_ClearIN();
+	Endpoint_ClearStatusStage();
 }
 
 #endif
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 6c25c584a3d57d999872cdc715324e6a22405143..aa76c4451040696007475989e6eaa15d63774321 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -14,6 +14,7 @@
   *    Report protocol is not needed
   *  - Added new MIDI LowLevel and ClassDriver Host demo, add new MIDI Host Class driver
   *  - Added stdio.h stream examples for the virtual CDC UART in the CDC host demos
+  *  - Added new CDC/Mouse ClassDriver device demo
   *
   *  <b>Changed:</b>
   *  - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library
@@ -39,6 +40,7 @@
   *  - Fixed incorrect SampleFrequencyType value in the AudioInput and AudioOutput ClassDriver demos' descriptors
   *  - Fixed incorrect event name rule in demo/project/bootloader makefiles
   *  - Fixed HID device class driver not reselecting the correct endpoint once the user callback routines have been called
+  *  - Corrected HID descriptor in the Joystick Device demos - buttons should be placed outside the pointer collection
   *
   *  \section Sec_ChangeLog090924 Version 090924
   *
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 0023284658fbaf226eafe727f39b6feb139a49d6..4c5a694475bb3d94e0ba385c919e0445a764a9ce 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -35,6 +35,7 @@
  *  - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller - http://noisybox.net/electronics/wingdinger/
  *  - Garmin GPS USB to NMEA standard serial sentence translator: http://github.com/nall/garmin-transmogrifier/tree/master
  *  - Generic HID Device Creator : http://generichid.sourceforge.net/
+ *  - Mobo 4.3, some sort of Audio related device: http://sites.google.com/site/lofturj/mobo4_3
  *  - NES Controller USB modification: http://projects.peterpolidoro.net/video/NESUSB.htm
  *  - MakeTV Episode Dispenser: http://www.youtube.com/watch?v=BkWUi18hl3g
  *  - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/