diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h
index 699b4356d4..9d4933aae6 100644
--- a/Bootloaders/CDC/Descriptors.h
+++ b/Bootloaders/CDC/Descriptors.h
@@ -58,10 +58,6 @@
 			#define AVR_SIGNATURE_1               0x1E
 			#define AVR_SIGNATURE_2               0x96
 			#define AVR_SIGNATURE_3               0x82
-		#elif defined(__AVR_ATmega32U6__)
-			#define AVR_SIGNATURE_1               0x1E
-			#define AVR_SIGNATURE_2               0x95
-			#define AVR_SIGNATURE_3               0x88
 		#elif defined(__AVR_ATmega32U4__)
 			#define AVR_SIGNATURE_1               0x1E
 			#define AVR_SIGNATURE_2               0x95
diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h
index 79a585d62d..6d39c73708 100644
--- a/Bootloaders/DFU/Descriptors.h
+++ b/Bootloaders/DFU/Descriptors.h
@@ -85,11 +85,6 @@
 			#define AVR_SIGNATURE_1               0x1E
 			#define AVR_SIGNATURE_2               0x96
 			#define AVR_SIGNATURE_3               0x82
-		#elif defined(__AVR_ATmega32U6__)
-			#define PRODUCT_ID_CODE               0x2FFB
-			#define AVR_SIGNATURE_1               0x1E
-			#define AVR_SIGNATURE_2               0x95
-			#define AVR_SIGNATURE_3               0x88
 		#elif defined(__AVR_ATmega32U4__)
 			#define PRODUCT_ID_CODE               0x2FF4
 			#define AVR_SIGNATURE_1               0x1E
diff --git a/LUFA/DoxygenPages/DeviceSupport.txt b/LUFA/DoxygenPages/DeviceSupport.txt
index 5170710817..05ba034506 100644
--- a/LUFA/DoxygenPages/DeviceSupport.txt
+++ b/LUFA/DoxygenPages/DeviceSupport.txt
@@ -12,7 +12,7 @@
  *  \li \subpage Page_UC3Support - Atmel AVR32 UC3 Support
  *  \li \subpage Page_XMEGASupport - Atmel XMEGA Support
  */
- 
+
 /**
  *  \page Page_AVR8Support Atmel 8-Bit AVR (AVR8) Support
  *
@@ -62,11 +62,6 @@
  *   <td bgcolor="#EE0000">No</td>
  *  </tr>
  *  <tr>
- *   <td>ATMEGA32U6</td>
- *   <td bgcolor="#00EE00">Yes</td>
- *   <td bgcolor="#EE0000">No</td>
- *  </tr>
- *  <tr>
  *   <td>AT90USB646</td>
  *   <td bgcolor="#00EE00">Yes</td>
  *   <td bgcolor="#EE0000">No</td>
@@ -126,7 +121,7 @@
  *   - Tom's USBTINY-MKII (all revisions and versions)
  *   - Custom User Boards (with Board Drivers if desired, see \ref Page_WritingBoardDrivers)
  */
- 
+
 /**
  *  \page Page_UC3Support Atmel 32-Bit UC3 AVR (UC3)
  *
@@ -143,16 +138,6 @@
  *   <th width="150px">USB Host Mode</th>
  *  </tr>
  *  <tr>
- *   <td>AT32UC3A064</td>
- *   <td bgcolor="#00EE00">Yes</td>
- *   <td bgcolor="#00EE00">Yes</td>
- *  </tr>
- *  <tr>
- *   <td>AT32UC3A164</td>
- *   <td bgcolor="#00EE00">Yes</td>
- *   <td bgcolor="#00EE00">Yes</td>
- *  </tr>
- *  <tr>
  *   <td>AT32UC3A364</td>
  *   <td bgcolor="#00EE00">Yes</td>
  *   <td bgcolor="#00EE00">Yes</td>
@@ -297,7 +282,7 @@
  *  Currently supported third-party boards (see \ref Group_BoardTypes for makefile \c BOARD constant names):
  *   - Custom User Boards (with Board Drivers if desired, see \ref Page_WritingBoardDrivers)
  */
- 
+
 /**
  *  \page Page_XMEGASupport Atmel USB XMEGA AVR (XMEGA)
  *
diff --git a/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
index 06162f29be..279e351da1 100644
--- a/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
@@ -55,14 +55,14 @@
  *  \code
  *      // Initialize the ADC driver before first use
  *      ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32);
- *      
+ *
  *      // Must setup the ADC channel to read beforehand
  *      ADC_SetupChannel(1);
- *      
+ *
  *      // Perform a single conversion of the ADC channel 1
  *      ADC_GetChannelReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
  *      printf("Conversion Result: %d\r\n", ADC_GetResult());
- *      
+ *
  *      // Start reading ADC channel 1 in free running (continuous conversion) mode
  *      ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
  *      for (;;)
@@ -93,8 +93,7 @@
 
 		#if !(defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
 		      defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-			  defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
-			  defined(__AVR_ATmega32U6__))
+			  defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__))
 			#error The ADC peripheral driver is not currently available for your selected microcontroller model.
 		#endif
 
@@ -276,8 +275,7 @@
 			static inline void ADC_SetupChannel(const uint8_t ChannelIndex)
 			{
 				#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-					 defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-					 defined(__AVR_ATmega32U6__))
+					 defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__))
 				DDRF  &= ~(1 << ChannelIndex);
 				DIDR0 |=  (1 << ChannelIndex);
 				#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
@@ -318,8 +316,7 @@
 			static inline void ADC_DisableChannel(const uint8_t ChannelIndex)
 			{
 				#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-					 defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-					 defined(__AVR_ATmega32U6__))
+					 defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__))
 				DDRF  &= ~(1 << ChannelIndex);
 				DIDR0 &= ~(1 << ChannelIndex);
 				#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
index d699ccb8db..d4b7760362 100644
--- a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
@@ -54,35 +54,35 @@
  *  \code
  *      // Initialize the TWI driver before first use at 200KHz
  *      TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 200000));
- *      
+ *
  *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
  *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10) == TWI_ERROR_NoError)
  *      {
  *          TWI_SendByte(0xDC);
- *          
+ *
  *          TWI_SendByte(0x01);
  *          TWI_SendByte(0x02);
  *          TWI_SendByte(0x03);
- *          
+ *
  *          // Must stop transmission afterwards to release the bus
  *          TWI_StopTransmission();
  *      }
- *      
+ *
  *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
  *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10) == TWI_ERROR_NoError)
  *      {
  *          TWI_SendByte(0xDC);
  *          TWI_StopTransmission();
- *          
+ *
  *          if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_READ, 10) == TWI_ERROR_NoError)
  *          {
  *              uint8_t Byte1, Byte2, Byte3;
- *              
+ *
  *              // Read three bytes, acknowledge after the third byte is received
  *              TWI_ReceiveByte(&Byte1, false);
  *              TWI_ReceiveByte(&Byte2, false);
  *              TWI_ReceiveByte(&Byte3, true);
- *              
+ *
  *              // Must stop transmission afterwards to release the bus
  *              TWI_StopTransmission();
  *          }
@@ -93,18 +93,18 @@
  *  \code
  *      // Initialize the TWI driver before first use at 200KHz
  *      TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 200000));
- *      
+ *
  *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
  *      uint8_t InternalWriteAddress = 0xDC;
  *      uint8_t WritePacket[3] = {0x01, 0x02, 0x03};
- *      
+ *
  *      TWI_WritePacket(0xA0, 10, &InternalWriteAddress, sizeof(InternalWriteAddress),
  *                      &WritePacket, sizeof(WritePacket);
- *      
+ *
  *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
  *      uint8_t InternalReadAddress = 0xDC;
  *      uint8_t ReadPacket[3];
- *      
+ *
  *      TWI_ReadPacket(0xA0, 10, &InternalReadAddress, sizeof(InternalReadAddress),
  *                     &ReadPacket, sizeof(ReadPacket);
  *  \endcode
@@ -133,8 +133,7 @@
 
 		#if !(defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
 		      defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-			  defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
-			  defined(__AVR_ATmega32U6__))
+			  defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__))
 			#error The TWI peripheral driver is not currently available for your selected microcontroller model.
 		#endif
 
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
index 876a2aac6f..de53c21abf 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
@@ -203,10 +203,10 @@
 			                                              const uint8_t Banks)
 			{
 				uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-			
+
 				if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
 				  return false;
-			
+
 				return Endpoint_ConfigureEndpoint_Prv(Number,
 				                                      ((Type << EPTYPE0) | ((Address & ENDPOINT_DIR_IN) ? (1 << EPDIR) : 0)),
 				                                      ((1 << ALLOC) | ((Banks > 1) ? (1 << EPBK0) : 0) | Endpoint_BytesToEPSizeMask(Size)));
@@ -221,9 +221,9 @@
 			static inline uint16_t Endpoint_BytesInEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
 			static inline uint16_t Endpoint_BytesInEndpoint(void)
 			{
-				#if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) && !defined(__AVR_ATmega32U6__)
+				#if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
 					return UEBCX;
-				#elif defined(USB_SERIES_4_AVR) || defined(__AVR_ATmega32U6__)
+				#elif defined(USB_SERIES_4_AVR)
 					return (((uint16_t)UEBCHX << 8) | UEBCLX);
 				#elif defined(USB_SERIES_2_AVR)
 					return UEBCLX;
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
index 3e1618811e..74d58f7c28 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
@@ -91,7 +91,7 @@
 				#define USB_PLL_PSC                0
 			#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
 				#define USB_PLL_PSC                0
-			#elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))
+			#elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__))
 				#define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))
 			#elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))
 				#define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))
@@ -103,7 +103,7 @@
 				#define USB_PLL_PSC                (1 << PLLP0)
 			#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
 				#define USB_PLL_PSC                (1 << PINDIV)
-			#elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))
+			#elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__))
 				#define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))
 			#elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))
 				#define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 6fe7c062e8..8882a02e4d 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -106,7 +106,7 @@
 		 *  (i.e. AT32UC3A4*) when defined.
 		 */
 		#define USB_SERIES_UC3A4_AVR
-		
+
 		/** Indicates that the target AVR microcontroller belongs to the AVR32 UC3B0 Series USB controller
 		 *  (i.e. AT32UC3B0*) when defined.
 		 */
@@ -175,7 +175,7 @@
 			#elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__))
 				#define USB_SERIES_4_AVR
 				#define USB_CAN_BE_DEVICE
-			#elif (defined(__AVR_ATmega32U6__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
+			#elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
 				#define USB_SERIES_6_AVR
 				#define USB_CAN_BE_DEVICE
 			#elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))