diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 5e917efed329c06ee78c6941f3b2555abdc79f0f..38fe1151d1f3447c0c6843eb868c2da998bc4620 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -23,6 +23,7 @@
   *  <b>Fixed:</b>
   *  - Core:
   *   - Fixed ring buffer size limited to 255 elements, instead of the intended 65535 elements.
+  *   - Fixed CDC class drivers not saving and sending all 16-bits of the control line states (thanks to Matthew Swabey)
   *  - Library Applications:
   *   - Added reliability patches to the AVRISP-MKII Clone project's PDI/TPI protocols (thanks to Justin Mattair)
   *   - Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETECT is enabled
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 6e188ad637d79367cfafcad35c62d8a92f4ab14f..b1eeb41dc3411c04af027409d1e984102643cc97 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -118,13 +118,13 @@
 				{
 					struct
 					{
-						uint8_t HostToDevice; /**< Control line states from the host to device, as a set of \c CDC_CONTROL_LINE_OUT_*
-											   *   masks. This value is updated each time \ref CDC_Device_USBTask() is called.
-											   */
-						uint8_t DeviceToHost; /**< Control line states from the device to host, as a set of \c CDC_CONTROL_LINE_IN_*
-											   *   masks - to notify the host of changes to these values, call the
-											   *   \ref CDC_Device_SendControlLineStateChange() function.
-											   */
+						uint16_t HostToDevice; /**< Control line states from the host to device, as a set of \c CDC_CONTROL_LINE_OUT_*
+											    *   masks. This value is updated each time \ref CDC_Device_USBTask() is called.
+											    */
+						uint16_t DeviceToHost; /**< Control line states from the device to host, as a set of \c CDC_CONTROL_LINE_IN_*
+											    *   masks - to notify the host of changes to these values, call the
+											    *   \ref CDC_Device_SendControlLineStateChange() function.
+											    */
 					} ControlLineStates; /**< Current states of the virtual serial port's control lines between the device and host. */
 
 					CDC_LineEncoding_t LineEncoding; /** Line encoding used in the virtual serial port, for the device's information.
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index 59ec1372a6167199cceaf8524b684e7edf637f7e..7fd9e49f4f99e341fb5750d9d6b02d1376a116d7 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -106,13 +106,13 @@
 
 					struct
 					{
-						uint8_t HostToDevice; /**< Control line states from the host to device, as a set of \c CDC_CONTROL_LINE_OUT_*
-											   *   masks - to notify the device of changes to these values, call the
-											   *   \ref CDC_Host_SendControlLineStateChange() function.
-											   */
-						uint8_t DeviceToHost; /**< Control line states from the device to host, as a set of \c CDC_CONTROL_LINE_IN_*
-											   *   masks. This value is updated each time \ref CDC_Host_USBTask() is called.
-											   */
+						uint16_t HostToDevice; /**< Control line states from the host to device, as a set of \c CDC_CONTROL_LINE_OUT_*
+						                        *   masks - to notify the device of changes to these values, call the
+						                        *   \ref CDC_Host_SendControlLineStateChange() function.
+						                        */
+						uint16_t DeviceToHost; /**< Control line states from the device to host, as a set of \c CDC_CONTROL_LINE_IN_*
+						                        *   masks. This value is updated each time \ref CDC_Host_USBTask() is called.
+						                        */
 					} ControlLineStates; /**< Current states of the virtual serial port's control lines between the device and host. */
 
 					CDC_LineEncoding_t LineEncoding; /**< Line encoding used in the virtual serial port, for the device's information.