diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c
index 9cdb7769542cb95ca3279972e9a22ab2ce6faf2c..6b69421e0373f4e98d895bd14021854c480d692d 100644
--- a/Bootloaders/CDC/BootloaderCDC.c
+++ b/Bootloaders/CDC/BootloaderCDC.c
@@ -160,45 +160,45 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 		case REQ_GetLineEncoding:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				for (uint8_t i = 0; i < sizeof(LineCoding); i++)
 				  Endpoint_Write_Byte(*(LineCodingData++));	
 				
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
 		case REQ_SetLineEncoding:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				while (!(Endpoint_IsOUTReceived()));
 
 				for (uint8_t i = 0; i < sizeof(LineCoding); i++)
 				  *(LineCodingData++) = Endpoint_Read_Byte();
 
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
 		case REQ_SetControlLineState:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c
index 00c1ea54ba68ac2cb84a87770ceb2ed9cd7484d6..289b4eb22329e4c038b6ed7c3bd67f69d75373b3 100644
--- a/Bootloaders/DFU/BootloaderDFU.c
+++ b/Bootloaders/DFU/BootloaderDFU.c
@@ -163,7 +163,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 	switch (bRequest)
 	{
 		case DFU_DNLOAD:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 			
 			/* Check if bootloader is waiting to terminate */
 			if (WaitForExit)
@@ -235,7 +235,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 							/* Check if endpoint is empty - if so clear it and wait until ready for next packet */
 							if (!(Endpoint_BytesInEndpoint()))
 							{
-								Endpoint_ClearControlOUT();
+								Endpoint_ClearOUT();
 								while (!(Endpoint_IsOUTReceived()));
 							}
 
@@ -279,7 +279,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 							/* Check if endpoint is empty - if so clear it and wait until ready for next packet */
 							if (!(Endpoint_BytesInEndpoint()))
 							{
-								Endpoint_ClearControlOUT();
+								Endpoint_ClearOUT();
 								while (!(Endpoint_IsOUTReceived()));
 							}
 
@@ -296,15 +296,15 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				}
 			}
 
-			Endpoint_ClearControlOUT();
+			Endpoint_ClearOUT();
 
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsINReady()));
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 				
 			break;
 		case DFU_UPLOAD:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 
 			while (!(Endpoint_IsINReady()));
 
@@ -343,7 +343,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 						/* Check if endpoint is full - if so clear it and wait until ready for next packet */
 						if (Endpoint_BytesInEndpoint() == FIXED_CONTROL_ENDPOINT_SIZE)
 						{
-							Endpoint_ClearControlIN();
+							Endpoint_ClearIN();
 							while (!(Endpoint_IsINReady()));
 						}
 
@@ -368,7 +368,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 						/* Check if endpoint is full - if so clear it and wait until ready for next packet */
 						if (Endpoint_BytesInEndpoint() == FIXED_CONTROL_ENDPOINT_SIZE)
 						{
-							Endpoint_ClearControlIN();
+							Endpoint_ClearIN();
 							while (!(Endpoint_IsINReady()));
 						}
 
@@ -384,15 +384,15 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				DFU_State = dfuIDLE;
 			}
 
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsOUTReceived()));
-			Endpoint_ClearControlOUT();
+			Endpoint_ClearOUT();
 
 			break;
 		case DFU_GETSTATUS:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 			
 			/* Write 8-bit status value */
 			Endpoint_Write_Byte(DFU_Status);
@@ -407,46 +407,46 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			/* Write 8-bit state string ID number */
 			Endpoint_Write_Byte(0);
 
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 			
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsOUTReceived()));
-			Endpoint_ClearControlOUT();
+			Endpoint_ClearOUT();
 	
 			break;		
 		case DFU_CLRSTATUS:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 			
 			/* Reset the status value variable to the default OK status */
 			DFU_Status = OK;
 
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsINReady()));
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 			
 			break;
 		case DFU_GETSTATE:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 			
 			/* Write the current device state to the endpoint */
 			Endpoint_Write_Byte(DFU_State);
 		
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 			
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsOUTReceived()));
-			Endpoint_ClearControlOUT();
+			Endpoint_ClearOUT();
 
 			break;
 		case DFU_ABORT:
-			Endpoint_ClearControlSETUP();
+			Endpoint_ClearSETUP();
 			
 			/* Reset the current state variable to the default idle state */
 			DFU_State = dfuIDLE;
 			
 			/* Acknowledge status stage */
 			while (!(Endpoint_IsINReady()));
-			Endpoint_ClearControlIN();
+			Endpoint_ClearIN();
 
 			break;
 	}
@@ -463,7 +463,7 @@ static void DiscardFillerBytes(uint8_t NumberOfBytes)
 	{
 		if (!(Endpoint_BytesInEndpoint()))
 		{
-			Endpoint_ClearControlOUT();
+			Endpoint_ClearOUT();
 
 			/* Wait until next data packet received */
 			while (!(Endpoint_IsOUTReceived()));
diff --git a/Bootloaders/TeensyHID/TeensyHID.c b/Bootloaders/TeensyHID/TeensyHID.c
index f82e28e729941c8ee5828e3bff704bc835c959fa..e81c462a0a8263e4283b3a2f088a556b69b6f03c 100644
--- a/Bootloaders/TeensyHID/TeensyHID.c
+++ b/Bootloaders/TeensyHID/TeensyHID.c
@@ -101,7 +101,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 		case REQ_SetReport:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Wait until the command (report) has been sent by the host */
 				while (!(Endpoint_IsOUTReceived()));
@@ -126,7 +126,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 						/* Check if endpoint is empty - if so clear it and wait until ready for next packet */
 						if (!(Endpoint_BytesInEndpoint()))
 						{
-							Endpoint_ClearControlOUT();
+							Endpoint_ClearOUT();
 							while (!(Endpoint_IsOUTReceived()));
 						}
 
@@ -142,11 +142,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 					boot_rww_enable();
 				}
 
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
diff --git a/Demos/Device/AudioInput/AudioInput.c b/Demos/Device/AudioInput/AudioInput.c
index ade3aa5a3f1f0ad4fc75cc92a6c26da93f92ad23..45b9971f8ce6f0e0609be29d30a7ca04065f8b13 100644
--- a/Demos/Device/AudioInput/AudioInput.c
+++ b/Demos/Device/AudioInput/AudioInput.c
@@ -139,7 +139,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			{
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Check if the host is enabling the audio interface (setting AlternateSetting to 1) */
 				if (wValue)
@@ -155,7 +155,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 
 			break;
diff --git a/Demos/Device/AudioOutput/AudioOutput.c b/Demos/Device/AudioOutput/AudioOutput.c
index aae01680ad056431347d2babdba43ce2cc8cb907..ba9a499a4031c46257211349bea1704a3bb58fa6 100644
--- a/Demos/Device/AudioOutput/AudioOutput.c
+++ b/Demos/Device/AudioOutput/AudioOutput.c
@@ -166,7 +166,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			{
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Check if the host is enabling the audio interface (setting AlternateSetting to 1) */
 				if (wValue)
@@ -182,7 +182,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 
 			break;
diff --git a/Demos/Device/CDC/CDC.c b/Demos/Device/CDC/CDC.c
index 4c51fc6b70eaac85542f79c1564802223361e3db..fb7d74b073f56271475c033fe12f0bd663b61b88 100644
--- a/Demos/Device/CDC/CDC.c
+++ b/Demos/Device/CDC/CDC.c
@@ -166,13 +166,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{	
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Write the line coding data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(LineCodingData, sizeof(CDC_Line_Coding_t));
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -180,13 +180,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Read the line coding data in from the host into the global struct */
 				Endpoint_Read_Control_Stream_LE(LineCodingData, sizeof(CDC_Line_Coding_t));
 
 				/* Finalize the stream transfer to clear the last packet from the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
@@ -205,11 +205,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 #endif
 				
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
diff --git a/Demos/Device/DualCDC/DualCDC.c b/Demos/Device/DualCDC/DualCDC.c
index 69d26c488db709db7be46cd8ea538607d7551f14..bbcbecc3d4af69f389d32687bdecb000ec0a9f63 100644
--- a/Demos/Device/DualCDC/DualCDC.c
+++ b/Demos/Device/DualCDC/DualCDC.c
@@ -204,13 +204,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{	
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Write the line coding data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(LineCodingData, sizeof(CDC_Line_Coding_t));
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -218,13 +218,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Read the line coding data in from the host into the global struct */
 				Endpoint_Read_Control_Stream_LE(LineCodingData, sizeof(CDC_Line_Coding_t));
 
 				/* Finalize the stream transfer to clear the last packet from the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
@@ -232,11 +232,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
diff --git a/Demos/Device/GenericHID/GenericHID.c b/Demos/Device/GenericHID/GenericHID.c
index a0d4f150c99e12989aa9a35f6e661d2743dd7f1a..207f63c26469349ab80a458f3c0ddf004df16ee5 100644
--- a/Demos/Device/GenericHID/GenericHID.c
+++ b/Demos/Device/GenericHID/GenericHID.c
@@ -165,7 +165,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 		case REQ_GetReport:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				uint8_t GenericData[GENERIC_REPORT_SIZE];
 				
@@ -175,14 +175,14 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				Endpoint_Write_Control_Stream_LE(&GenericData, sizeof(GenericData));
 
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
 		case REQ_SetReport:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Wait until the generic report has been sent by the host */
 				while (!(Endpoint_IsOUTReceived()));
@@ -194,13 +194,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				ProcessGenericHIDReport(GenericData);
 			
 				/* Clear the endpoint data */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Wait until the host is ready to receive the request confirmation */
 				while (!(Endpoint_IsINReady()));
 				
 				/* Handshake the request by sending an empty IN packet */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
diff --git a/Demos/Device/Joystick/Joystick.c b/Demos/Device/Joystick/Joystick.c
index 60eef548ea7424b2a6135f750231edb61d1f4cbe..e5d23bd6d5dd8773b93523048fc9af69a3c4382b 100644
--- a/Demos/Device/Joystick/Joystick.c
+++ b/Demos/Device/Joystick/Joystick.c
@@ -145,13 +145,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				if (wLength > sizeof(JoystickReportData))
 				  wLength = sizeof(JoystickReportData);
 
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				/* Write the report data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(&JoystickReportData, wLength);
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
diff --git a/Demos/Device/Keyboard/Keyboard.c b/Demos/Device/Keyboard/Keyboard.c
index f0e0186d0b2894da9ca0c1effa2f5c07ed0eb08c..6d7ee3fcd1d06b0be35f7ce42568c69faa318cbb 100644
--- a/Demos/Device/Keyboard/Keyboard.c
+++ b/Demos/Device/Keyboard/Keyboard.c
@@ -216,20 +216,20 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				if (wLength > sizeof(KeyboardReportData))
 				  wLength = sizeof(KeyboardReportData);
 
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				/* Write the report data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(&KeyboardReportData, wLength);
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
 		case REQ_SetReport:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Wait until the LED report has been sent by the host */
 				while (!(Endpoint_IsOUTReceived()));
@@ -241,28 +241,28 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				ProcessLEDReport(LEDStatus);
 			
 				/* Clear the endpoint data */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
 		case REQ_GetProtocol:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current protocol flag to the host */
 				Endpoint_Write_Byte(UsingReportProtocol);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -272,14 +272,14 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the new protocol mode */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 								
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
 				UsingReportProtocol = (wValue != 0x0000);
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
@@ -289,31 +289,31 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the idle period */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Get idle period in MSB */
 				IdleCount = (wValue >> 8);
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
 		case REQ_GetIdle:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{		
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current idle duration to the host */
 				Endpoint_Write_Byte(IdleCount);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 
 			break;
diff --git a/Demos/Device/KeyboardMouse/KeyboardMouse.c b/Demos/Device/KeyboardMouse/KeyboardMouse.c
index 957b9b38c8964f434992293c5487ef8d697985be..9cae69a5e424ce6a703f8306269ee2763923950b 100644
--- a/Demos/Device/KeyboardMouse/KeyboardMouse.c
+++ b/Demos/Device/KeyboardMouse/KeyboardMouse.c
@@ -167,7 +167,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				if (wLength > ReportSize)
 				  wLength = ReportSize;
 
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				/* Write the report data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(ReportData, wLength);
@@ -176,14 +176,14 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				memset(ReportData, 0, ReportSize);
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
 		case REQ_SetReport:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Wait until the LED report has been sent by the host */
 				while (!(Endpoint_IsOUTReceived()));
@@ -205,11 +205,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				LEDs_SetAllLEDs(LEDMask);
 
 				/* Clear the endpoint data */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
diff --git a/Demos/Device/MassStorage/MassStorage.c b/Demos/Device/MassStorage/MassStorage.c
index 7ddb8f05ac1a1a313af7b9e241af8d8a2e769eed..8c7db9322040354996cb1d728af3f848d3bb2178 100644
--- a/Demos/Device/MassStorage/MassStorage.c
+++ b/Demos/Device/MassStorage/MassStorage.c
@@ -153,30 +153,30 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 		case REQ_MassStorageReset:
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Indicate that the current transfer should be aborted */
 				IsMassStoreReset = true;			
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 
 			break;
 		case REQ_GetMaxLUN:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Indicate to the host the number of supported LUNs (virtual disks) on the device */
 				Endpoint_Write_Byte(TOTAL_LUNS - 1);
 				
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
diff --git a/Demos/Device/Mouse/Mouse.c b/Demos/Device/Mouse/Mouse.c
index 38a7086d573ba3b4a8aca8a90feb0e35ab210add..0959a4a12ee6ebc784535111c4adfc65c83b0047 100644
--- a/Demos/Device/Mouse/Mouse.c
+++ b/Demos/Device/Mouse/Mouse.c
@@ -206,7 +206,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				if (wLength > sizeof(MouseReportData))
 				  wLength = sizeof(MouseReportData);
 
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				/* Write the report data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(&MouseReportData, wLength);
@@ -215,24 +215,24 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				memset(&MouseReportData, 0, sizeof(MouseReportData));
 
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
 		case REQ_GetProtocol:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current protocol flag to the host */
 				Endpoint_Write_Byte(UsingReportProtocol);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -242,14 +242,14 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the new protocol mode */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
 				UsingReportProtocol = (wValue != 0x0000);
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
@@ -259,31 +259,31 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the idle period */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Get idle period in MSB */
 				IdleCount = (wValue >> 8);
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
 		case REQ_GetIdle:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{		
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current idle duration to the host */
 				Endpoint_Write_Byte(IdleCount);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 
 			break;
diff --git a/Demos/Device/RNDISEthernet/RNDISEthernet.c b/Demos/Device/RNDISEthernet/RNDISEthernet.c
index d77cc457ba1a74705cca77803d70af7911024cda..ec8eb7b8770736beca19b8152265a47f369b1223 100644
--- a/Demos/Device/RNDISEthernet/RNDISEthernet.c
+++ b/Demos/Device/RNDISEthernet/RNDISEthernet.c
@@ -156,13 +156,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
 				/* Clear the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Read in the RNDIS message into the message buffer */
 				Endpoint_Read_Control_Stream_LE(RNDISMessageBuffer, wLength);
 
 				/* Finalize the stream transfer to clear the last packet from the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Process the RNDIS message */
 				ProcessRNDISControlMessage();
@@ -185,13 +185,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				  wLength = MessageHeader->MessageLength;
 
 				/* Clear the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the message response data to the endpoint */
 				Endpoint_Write_Control_Stream_LE(RNDISMessageBuffer, wLength);
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 
 				/* Reset the message header once again after transmission */
 				MessageHeader->MessageLength = 0;
diff --git a/Demos/Device/USBtoSerial/USBtoSerial.c b/Demos/Device/USBtoSerial/USBtoSerial.c
index 6bd14ccbe47ed29dd1fef5c287893ce1a8f6058b..e1c22fc13a2fa8ef63617ba75fede2ab86c522ef 100644
--- a/Demos/Device/USBtoSerial/USBtoSerial.c
+++ b/Demos/Device/USBtoSerial/USBtoSerial.c
@@ -159,13 +159,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{	
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Write the line coding data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(LineCodingData, sizeof(LineCoding));
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -173,13 +173,13 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Read the line coding data in from the host into the global struct */
 				Endpoint_Read_Control_Stream_LE(LineCodingData, sizeof(LineCoding));
 
 				/* Finalize the stream transfer to clear the last packet from the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 				
 				/* Reconfigure the USART with the new settings */
 				ReconfigureUSART();
@@ -201,11 +201,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 #endif
 				
 				/* Acknowledge the SETUP packet, ready for data transfer */
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 	
 			break;
diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt
index 38b666b49b484c6c03c5ab11ad0952bd80c638db..f0c33e01af7604805fc1c8808fb5dca222a0aadd 100644
--- a/LUFA/ChangeLog.txt
+++ b/LUFA/ChangeLog.txt
@@ -36,14 +36,13 @@
   *  - The USB Host management task now saves and restores the currently selected pipe before and after the task completes
   *  - Fixed GenericHIDHost demo report write routine incorrect for control type requests (thanks to Andrei Krainev)
   *  - Removed Endpoint_ClearCurrentBank() and Pipe_ClearCurrentBank() in favour of new Endpoint_ClearIN(), Endpoint_ClearOUT(),
-  *    Endpoint_ClearControlIN(), Endpoint_ClearControlOUT(), Pipe_ClearIN(), Pipe_ClearOUT(), Pipe_ClearControlIN() and
-  *    Pipe_ClearControlOUT() macros (done to allow for the detection of packets of zero length)
+  *    Pipe_ClearIN() and Pipe_ClearOUT() macros (done to allow for the detection of packets of zero length)
   *  - Renamed *_ReadWriteAllowed() macros to *_IsReadWriteAllowed() to remain consistent with the rest of the LUFA API
   *  - Endpoint_IsSetupReceived() macro has been renamed to Endpoint_IsSETUPReceived(), Endpoint_ClearSetupReceived() macro has been
-  *    renamed to Endpoint_ClearControlSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the
+  *    renamed to Endpoint_ClearSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the
   *    Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe
   *    bank management API
-  *  - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel)
+  *  - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel (Curetis AG))
   *  - Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
   *  - Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity
   *  - Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.c b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
index 19d72983b63b6f001921fbd6e6e449c91c6a48a2..3f2805c5a70c7b39f2ca12904d71a27366fc4748 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.c
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
@@ -108,7 +108,7 @@ void USB_Device_ProcessControlPacket(void)
 	if (Endpoint_IsSETUPReceived())
 	{
 		Endpoint_StallTransaction();
-		Endpoint_ClearControlSETUP();		
+		Endpoint_ClearSETUP();		
 	}
 }
 
@@ -116,11 +116,11 @@ static void USB_Device_SetAddress(void)
 {
 	uint8_t wValue_LSB = Endpoint_Read_Byte();
 
-	Endpoint_ClearControlSETUP();
+	Endpoint_ClearSETUP();
 	
 	while (!(Endpoint_IsINReady()));
 	
-	Endpoint_ClearControlIN();
+	Endpoint_ClearIN();
 	
 	while (!(Endpoint_IsINReady()));
 
@@ -152,11 +152,11 @@ static void USB_Device_SetConfiguration(void)
 		return;
 	}
 	
-	Endpoint_ClearControlSETUP();
+	Endpoint_ClearSETUP();
 
 	USB_ConfigurationNumber = wValue_LSB;
 
-	Endpoint_ClearControlIN();
+	Endpoint_ClearIN();
 
 	if (!(AlreadyConfigured) && USB_ConfigurationNumber)
 	  RAISE_EVENT(USB_DeviceEnumerationComplete);
@@ -166,14 +166,14 @@ static void USB_Device_SetConfiguration(void)
 
 void USB_Device_GetConfiguration(void)
 {
-	Endpoint_ClearControlSETUP();	
+	Endpoint_ClearSETUP();	
 
 	Endpoint_Write_Byte(USB_ConfigurationNumber);
 	
-	Endpoint_ClearControlIN();
+	Endpoint_ClearIN();
 
 	while (!(Endpoint_IsOUTReceived()));
-	Endpoint_ClearControlOUT();
+	Endpoint_ClearOUT();
 }
 
 static void USB_Device_GetDescriptor(void)
@@ -190,7 +190,7 @@ static void USB_Device_GetDescriptor(void)
 	if ((DescriptorSize = USB_GetDescriptor(wValue, wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)
 	  return;
 	
-	Endpoint_ClearControlSETUP();	
+	Endpoint_ClearSETUP();	
 	
 	if (wLength > DescriptorSize)
 	  wLength = DescriptorSize;
@@ -201,7 +201,7 @@ static void USB_Device_GetDescriptor(void)
 		{
 			if (Endpoint_IsOUTReceived())
 			{
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 				return;
 			}		
 		}
@@ -220,17 +220,17 @@ static void USB_Device_GetDescriptor(void)
 		}
 		
 		SendZLP = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize);
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 	
 	if (SendZLP)
 	{
 		while (!(Endpoint_IsINReady()));
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 
 	while (!(Endpoint_IsOUTReceived()));
-	Endpoint_ClearControlOUT();
+	Endpoint_ClearOUT();
 }
 
 static void USB_Device_GetStatus(const uint8_t bmRequestType)
@@ -264,14 +264,14 @@ static void USB_Device_GetStatus(const uint8_t bmRequestType)
 	}
 	
 	Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);			  
-	Endpoint_ClearControlSETUP();
+	Endpoint_ClearSETUP();
 
 	Endpoint_Write_Word_LE(CurrentStatus);
 
-	Endpoint_ClearControlIN();
+	Endpoint_ClearIN();
 	
 	while (!(Endpoint_IsOUTReceived()));
-	Endpoint_ClearControlOUT();
+	Endpoint_ClearOUT();
 }
 
 #if !defined(FEATURELESS_CONTROL_ONLY_DEVICE)
@@ -306,8 +306,8 @@ static void USB_Device_ClearSetFeature(const uint8_t bRequest, const uint8_t bmR
 					}
 
 					Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
-					Endpoint_ClearControlSETUP();
-					Endpoint_ClearControlIN();
+					Endpoint_ClearSETUP();
+					Endpoint_ClearIN();
 				}
 			}
 			
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.c b/LUFA/Drivers/USB/LowLevel/Endpoint.c
index b88547177c5a58ba488c86b6974394f2fffe27d8..e196b6aeec458cb656a6bcfcf523a09f2b9ffe8d 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.c
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.c
@@ -59,7 +59,7 @@ bool Endpoint_ConfigureEndpointStatic(const uint8_t Number, const uint8_t UECFG0
 	Endpoint_SelectEndpoint(Number);
 	Endpoint_EnableEndpoint();
 
-	UECFG1X = 0;	
+	UECFG1X = 0;
 
 	UECFG0X = UECFG0XData;
 	UECFG1X = UECFG1XData;
@@ -307,7 +307,7 @@ uint8_t Endpoint_Write_Control_Stream_LE(const void* Buffer, uint16_t Length)
 		}
 		
 		SendZLP = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize);
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 	
 	if (Endpoint_IsOUTReceived())
@@ -316,7 +316,7 @@ uint8_t Endpoint_Write_Control_Stream_LE(const void* Buffer, uint16_t Length)
 	if (SendZLP)
 	{
 		while (!(Endpoint_IsINReady()));
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 	
 	while (!(Endpoint_IsOUTReceived()));
@@ -341,7 +341,7 @@ uint8_t Endpoint_Write_Control_Stream_BE(const void* Buffer, uint16_t Length)
 		}
 		
 		SendZLP = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize);
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 	
 	if (Endpoint_IsOUTReceived())
@@ -350,7 +350,7 @@ uint8_t Endpoint_Write_Control_Stream_BE(const void* Buffer, uint16_t Length)
 	if (SendZLP)
 	{
 		while (!(Endpoint_IsINReady()));
-		Endpoint_ClearControlIN();
+		Endpoint_ClearIN();
 	}
 	
 	while (!(Endpoint_IsOUTReceived()));
@@ -373,7 +373,7 @@ uint8_t Endpoint_Read_Control_Stream_LE(void* Buffer, uint16_t Length)
 			Length--;
 		}
 		
-		Endpoint_ClearControlOUT();
+		Endpoint_ClearOUT();
 	}
 	
 	while (!(Endpoint_IsINReady()));
@@ -396,7 +396,7 @@ uint8_t Endpoint_Read_Control_Stream_BE(void* Buffer, uint16_t Length)
 			Length--;
 		}
 		
-		Endpoint_ClearControlOUT();
+		Endpoint_ClearOUT();
 	}
 	
 	while (!(Endpoint_IsINReady()));
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h
index 90375b0ef673c5e57580051a0f3f2a45318d4540..816e7632aabfc32515b57d6b42edcbb20c73f3b1 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.h
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h
@@ -309,41 +309,19 @@
 				 *
 				 *  \note This is not applicable for non CONTROL type endpoints.			 
 				 */
-				static inline void Endpoint_ClearControlSETUP(void);
+				static inline void Endpoint_ClearSETUP(void);
 				
-				/** Sends an IN packet to the host on the currently selected CONTROL type endpoint, freeing up the
-				 *  endpoint for the next packet.
-				 *
-				 *  \ingroup Group_EndpointPacketManagement
-				 *
-				 *  \note For non CONTROL type endpoints, use Endpoint_ClearIN() instead.			 
-				 */
-				static inline void Endpoint_ClearControlIN(void);
-				
-				/** Acknowledges an OUT packet to the host on the currently selected CONTROL type endpoint, freeing
-				 *  up the endpoint for the next packet.
+				/** Sends an IN packet to the host on the currently selected endpoint, freeing up the endpoint for the
+				 *  next packet and switching to the alternative endpoint bank if double banked.
 				 *
 				 *  \ingroup Group_EndpointPacketManagement
-				 *
-				 *  \note For non CONTROL type endpoints, use Endpoint_ClearOUT() instead.
-				 */
-				static inline void Endpoint_ClearControlOUT(void);
-				
-				/** Sends an IN packet to the host on the currently selected non CONTROL type endpoint, freeing
-				 *  up the endpoint for the next packet and switching to the alternative endpoint bank if double banked.
-				 *
-				 *  \ingroup Group_EndpointPacketManagement
-				 *
-				 *  \note For CONTROL type endpoints, use Endpoint_ClearControlIN() instead.
 				 */
 				static inline void Endpoint_ClearIN(void);
 				
-				/** Acknowledges an OUT packet to the host on the currently selected non CONTROL type endpoint, freeing
-				 *  up the endpoint for the next packet and switching to the alternative endpoint bank if double banked.
+				/** Acknowledges an OUT packet to the host on the currently selected endpoint, freeing up the endpoint
+				 *  for the next packet and switching to the alternative endpoint bank if double banked.
 				 *
 				 *  \ingroup Group_EndpointPacketManagement
-				 *
-				 *  \note For CONTROL type endpoints, use Endpoint_ClearControlOUT() instead.
 				 */
 				static inline void Endpoint_ClearOUT(void);
 				
@@ -417,11 +395,7 @@
 
 				#define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)
 
-				#define Endpoint_ClearControlSETUP()          MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE
-
-				#define Endpoint_ClearControlIN()             MACROS{ UEINTX &= ~(1 << TXINI); }MACROE
-
-				#define Endpoint_ClearControlOUT()            MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE
+				#define Endpoint_ClearSETUP()                 MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE
 
 				#define Endpoint_ClearIN()                    MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << TXINI)); \
 				                                                      UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE
@@ -900,7 +874,7 @@
 			/** Writes the given number of bytes to the CONTROL type endpoint from the given buffer in little endian,
 			 *  sending full packets to the host as needed. The host OUT acknowledgement is not automatically cleared
 			 *  in both failure and success states; the user is responsible for manually clearing the setup OUT to
-			 *  finalize the transfer via the Endpoint_ClearControlOUT() macro.
+			 *  finalize the transfer via the Endpoint_ClearOUT() macro.
 			 *
 			 *  \note This routine should only be used on CONTROL type endpoints.
 			 *
@@ -919,7 +893,7 @@
 			/** Writes the given number of bytes to the CONTROL type endpoint from the given buffer in big endian,
 			 *  sending full packets to the host as needed. The host OUT acknowledgement is not automatically cleared
 			 *  in both failure and success states; the user is responsible for manually clearing the setup OUT to
-			 *  finalize the transfer via the Endpoint_ClearControlOUT() macro.
+			 *  finalize the transfer via the Endpoint_ClearOUT() macro.
 			 *
 			 *  \note This routine should only be used on CONTROL type endpoints.
 			 *
@@ -938,7 +912,7 @@
 			/** Reads the given number of bytes from the CONTROL endpoint from the given buffer in little endian,
 			 *  discarding fully read packets from the host as needed. The device IN acknowledgement is not
 			 *  automatically sent after success or failure states; the user is responsible for manually sending the
-			 *  setup IN to finalize the transfer via the Endpoint_ClearControlIN() macro.
+			 *  setup IN to finalize the transfer via the Endpoint_ClearIN() macro.
 			 *
 			 *  \note This routine should only be used on CONTROL type endpoints.
 			 *
@@ -952,12 +926,12 @@
 			 *
 			 *  \return A value from the Endpoint_ControlStream_RW_ErrorCodes_t enum.
 			 */
-			uint8_t Endpoint_Read_Control_Stream_LE(void* Buffer, uint16_t Length)  ATTR_NON_NULL_PTR_ARG(1);
+			uint8_t Endpoint_Read_Control_Stream_LE(void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
 
 			/** Reads the given number of bytes from the CONTROL endpoint from the given buffer in big endian,
 			 *  discarding fully read packets from the host as needed. The device IN acknowledgement is not
 			 *  automatically sent after success or failure states; the user is responsible for manually sending the
-			 *  setup IN to finalize the transfer via the Endpoint_ClearControlIN() macro.
+			 *  setup IN to finalize the transfer via the Endpoint_ClearIN() macro.
 			 *
 			 *  \note This routine should only be used on CONTROL type endpoints.
 			 *
@@ -971,7 +945,7 @@
 			 *
 			 *  \return A value from the Endpoint_ControlStream_RW_ErrorCodes_t enum.
 			 */
-			uint8_t Endpoint_Read_Control_Stream_BE(void* Buffer, uint16_t Length)  ATTR_NON_NULL_PTR_ARG(1);		
+			uint8_t Endpoint_Read_Control_Stream_BE(void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);		
 			
 	/* Private Interface - For use in library only: */
 	#if !defined(__DOXYGEN__)
diff --git a/LUFA/Drivers/USB/LowLevel/HostChapter9.c b/LUFA/Drivers/USB/LowLevel/HostChapter9.c
index c89910e63004cb1f2e176c3737ce37005ec01ef1..dfc3f44836673616b771eac08f2cb232da4beec6 100644
--- a/LUFA/Drivers/USB/LowLevel/HostChapter9.c
+++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.c
@@ -58,7 +58,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
 	for (uint8_t HeaderByte = 0; HeaderByte < sizeof(USB_Host_Request_Header_t); HeaderByte++)
 	  Pipe_Write_Byte(*(HeaderStream++));
 
-	Pipe_ClearControlSETUP();
+	Pipe_ClearSETUP();
 	
 	if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_SetupSent)))
 	  goto End_Of_Control_Send;
@@ -91,7 +91,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
 				}
 
 				Pipe_Freeze();
-				Pipe_ClearControlIN();
+				Pipe_ClearIN();
 			}
 		}
 
@@ -101,7 +101,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
 		if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
 		  goto End_Of_Control_Send;
 
-		Pipe_ClearControlOUT();
+		Pipe_ClearOUT();
 
 		if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
 		  goto End_Of_Control_Send;
@@ -124,7 +124,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
 					DataLen--;
 				}
 				
-				Pipe_ClearControlOUT();
+				Pipe_ClearOUT();
 			}
 
 			if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
@@ -139,7 +139,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
 		if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived)))
 		  goto End_Of_Control_Send;
 
-		Pipe_ClearControlIN();
+		Pipe_ClearIN();
 	}
 
 End_Of_Control_Send:
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index c4a58b47165925fbec00a3184b9c93b382632a61..3f512c0d235fd7bf71a6e60d92a96d1bd00c091e 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -420,38 +420,16 @@
 				 */
 				static inline bool Pipe_IsSETUPSent(void);
 				
-				/** Acknowledges the reception of a setup IN request from the attached device on the currently selected
-				 *  CONTROL type pipe, freeing the bank ready for the next packet.
-				 *
-				 *  \ingroup Group_PipePacketManagement
-				 *
-				 *  \note For non CONTROL type pipes, use Pipe_ClearIN() instead.			 
-				 */
-				static inline void Pipe_ClearControlIN(void);
-
-				/** Sends the currently selected pipe's contents to the device as an OUT packet on the selected pipe, freeing
-				 *  the bank ready for the next packet.
-				 *
-				 *  \ingroup Group_PipePacketManagement
-				 *
-				 *  \note For non CONTROL type pipes, use Pipe_ClearOUT() instead.	
-				 */
-				static inline void Pipe_ClearControlOUT(void);
-
 				/** Sends the currently selected CONTROL type pipe's contents to the device as a SETUP packet.
 				 *
-				 *  \ingroup Group_PipePacketManagement
-				 *
-				 *  \note This is not applicable for non CONTROL type pipes.			
+				 *  \ingroup Group_PipePacketManagement		
 				 */
-				static inline void Pipe_ClearControlSETUP(void);
+				static inline void Pipe_ClearSETUP(void);
 
 				/** Acknowledges the reception of a setup IN request from the attached device on the currently selected
 				 *  pipe, freeing the bank ready for the next packet.
 				 *
 				 *  \ingroup Group_PipePacketManagement
-				 *
-				 *  \note For CONTROL type pipes, use Pipe_ClearControlIN() instead.	
 				 */
 				static inline void Pipe_ClearIN(void);
 
@@ -459,8 +437,6 @@
 				 *  the bank ready for the next packet.
 				 *
 				 *  \ingroup Group_PipePacketManagement
-				 *
-				 *  \note For CONTROL type pipes, use Pipe_ClearControlOUT() instead.	
 				 */
 				static inline void Pipe_ClearOUT(void);
 
@@ -554,16 +530,10 @@
 				#define Pipe_ClearIN()                 MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << RXINI)); \
 				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 
-				#define Pipe_ClearControlIN()          MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << RXINI)); \
-				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
-
 				#define Pipe_ClearOUT()                MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXOUTI)); \
 				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 				
-				#define Pipe_ClearControlOUT()         MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXOUTI)); \
-				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
-
-				#define Pipe_ClearControlSETUP()       MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXSTPI)); \
+				#define Pipe_ClearSETUP()              MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXSTPI)); \
 				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 
 				#define Pipe_IsNAKReceived()           ((UPINTX & (1 << NAKEDI)) ? true : false)
diff --git a/LUFA/MigrationInformation.txt b/LUFA/MigrationInformation.txt
index 104f0984b3b615a44119d33c61525faf82041046..576ba648a47f32727bb03c12fe24ae3cf220a554 100644
--- a/LUFA/MigrationInformation.txt
+++ b/LUFA/MigrationInformation.txt
@@ -23,15 +23,14 @@
  *      library demos should update to the latest versions.
  *
  *  <b>Device Mode</b>
- *    - The Endpoint_ClearCurrentBank() macro has been removed, and is now replaced with the Endpoint_ClearIN(), Endpoint_ClearOUT(),
- *      Endpoint_ClearControlIN(), Endpoint_ClearControlOUT() and other related macros. See Endpoint.h documentation for more details
- *      on the new endpoint management macros.
+ *    - The Endpoint_ClearCurrentBank() macro has been removed, and is now replaced with the Endpoint_ClearIN(), Endpoint_ClearOUT() 
+ *      macros. See Endpoint.h documentation for more details on the new endpoint management macros.
  *    - The Endpoint_ReadWriteAllowed() macro has been renamed to Endpoint_IsReadWriteAllowed() to be more consistent with the rest of
  *      the API naming scheme.
  *    - The Endpoint_IsSetupINReady() and Endpoint_IsSetupOutReceived() macros have been renamed to Endpoint_IsINReady() and
  *      Endpoint_IsOUTReceived() respectively.
  *    - The Endpoint_IsSetupReceived() macro has been renamed to Endpoint_IsSETUPReceived().
- *    - The Endpoint_ClearSetupReceived() macro has been renamed to Endpoint_ClearControlSETUP().
+ *    - The Endpoint_ClearSetupReceived() macro has been renamed to Endpoint_ClearSETUP().
  *    - All endpoint read/write/discard aliases which did not have an explicitly endianness specifier (such as Endpoint_Read_Word()) have
  *      been removed for clarity. Existing projects should use the "_LE" suffix on such calls to use the explicit Little Endian versions.
  *
@@ -41,14 +40,13 @@
  *      in existing projects where the Control pipe is to be operated on.
  *    - The USB Host management task now saves and restores the currently selected pipe before and after the task runs. Projects no longer
  *      need to manage this manually when calling the USB management task.
- *    - The Pipe_ClearCurrentBank() macro has been removed, and is now replaced with the Pipe_ClearIN(), Pipe_ClearOUT(),
- *      Pipe_ClearControlIN(), Pipe_ClearControlOUT() and other related macros. See Pipe.h documentation for more details on the new pipe
- *      management macros.
+ *    - The Pipe_ClearCurrentBank() macro has been removed, and is now replaced with the Pipe_ClearIN(), Pipe_ClearOUT() macros. See
+ *      Pipe.h documentation for more details on the new pipe management macros.
  *    - The Pipe_ReadWriteAllowed() macro has been renamed to Pipe_IsReadWriteAllowed() to be more consistent with the rest of the API
  *      naming scheme.
  *    - The Pipe_IsSetupINReceived() and Pipe_IsOutReady() macros have been renamed to Pipe_IsINReceived() and Pipe_IsOUTReady()
  *      respectively.
- *    - The new Pipe_ClearControlSETUP() macro should be used to send CONTROL transactions, rather than the previous Pipe_ClearSetupOUT() macro.
+ *    - The new Pipe_ClearSETUP() macro should be used to send SETUP transactions, rather than the previous Pipe_ClearSetupOUT() macro.
  *    - The Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent().
  *    - The Pipe_ClearSetupSent() macro is no longer applicable and should be removed.
  *    - All pipe read/write/discard aliases which did not have an explicitly endianness specifier (such as Pipe_Read_Word()) have
diff --git a/Projects/Magstripe/Magstripe.c b/Projects/Magstripe/Magstripe.c
index 4511b1c54a23af770bb1c3b1ffa1df68a089a514..94eed314dae4c0afb3300dc1b3832c27e48c175d 100644
--- a/Projects/Magstripe/Magstripe.c
+++ b/Projects/Magstripe/Magstripe.c
@@ -178,30 +178,30 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				if (wLength > sizeof(KeyboardReportData))
 				  wLength = sizeof(KeyboardReportData);
 
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 	
 				/* Write the report data to the control endpoint */
 				Endpoint_Write_Control_Stream_LE(&KeyboardReportData, wLength);
 				
 				/* Finalize the stream transfer to send the last packet or clear the host abort */
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 		
 			break;
 		case REQ_GetProtocol:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current protocol flag to the host */
 				Endpoint_Write_Byte(UsingReportProtocol);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 			
 			break;
@@ -211,14 +211,14 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the new protocol mode */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 
 				/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
 				UsingReportProtocol = (wValue != 0x0000);
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
@@ -228,31 +228,31 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
 				/* Read in the wValue parameter containing the idle period */
 				uint16_t wValue = Endpoint_Read_Word_LE();
 				
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Get idle period in MSB */
 				IdleCount = (wValue >> 8);
 				
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsINReady()));
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 			}
 			
 			break;
 		case REQ_GetIdle:
 			if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
 			{		
-				Endpoint_ClearControlSETUP();
+				Endpoint_ClearSETUP();
 				
 				/* Write the current idle duration to the host */
 				Endpoint_Write_Byte(IdleCount);
 				
 				/* Send the flag to the host */
-				Endpoint_ClearControlIN();
+				Endpoint_ClearIN();
 
 				/* Acknowledge status stage */
 				while (!(Endpoint_IsOUTReceived()));
-				Endpoint_ClearControlOUT();
+				Endpoint_ClearOUT();
 			}
 
 			break;