diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.c b/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.c
index 2c8c398f9dea693406a368c55522716bb6aecfc0..04548f7226a9ab84ca71b4dfc8a5ed4df52c28e9 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.c
+++ b/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.c
@@ -51,7 +51,7 @@
 
 /** Decodes an Ethernet frame header and prints its contents to through the USART in a human readable format.
  *
- *  \param[in] FrameINData  Pointer to the start of an Ethernet frame data
+ *  \param[in] InDataStart  Pointer to the start of an Ethernet frame of data
  */
 void DecodeEthernetFrameHeader(void* InDataStart)
 {
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
index 6d4df036bf2905fb88492d651bbad1c6f2fb21ef..9f7cec15eaab0c869c079588739496e0ea966d73 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
@@ -78,7 +78,7 @@ bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
 		  continue;
 
 		Endpoint_DisableEndpoint();
-		UECFG1X &= (1 << ALLOC);
+		UECFG1X &= ~(1 << ALLOC);
 
 		Endpoint_EnableEndpoint();
 		UECFG0X = UECFG0XTemp;
diff --git a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
index 5d7c8ac1bf7ba9761ae728bccb2024ccf99694d3..9484abed3538b4d625b3afc234afe29be5beda57 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
@@ -62,8 +62,6 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 		uint8_t UPCFG0XTemp;
 		uint8_t UPCFG1XTemp;
 		uint8_t UPCFG2XTemp;
-		uint8_t UPCONXTemp;
-		uint8_t UPINRQXTemp;
 		uint8_t UPIENXTemp;
 
 		Pipe_SelectPipe(PNum);
@@ -73,8 +71,6 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 			UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
 			UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
 			UPCFG2XTemp = 0;
-			UPCONXTemp  = ((1 << PEN) | (1 << INMODE));
-			UPINRQXTemp = 0;
 			UPIENXTemp  = 0;
 		}
 		else
@@ -82,27 +78,23 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 			UPCFG0XTemp = UPCFG0X;
 			UPCFG1XTemp = UPCFG1X;
 			UPCFG2XTemp = UPCFG2X;
-			UPCONXTemp  = UPCONX;
-			UPINRQXTemp = UPINRQX;
 			UPIENXTemp  = UPIENX;
 		}
 
-		Pipe_SetInfiniteINRequests();
-	
 		if (!(UPCFG1XTemp & (1 << ALLOC)))
 		  continue;
 		  
 		Pipe_DisablePipe();
-		UPCFG1X &= (1 << ALLOC);
+		UPCFG1X &= ~(1 << ALLOC);
 
 		Pipe_EnablePipe();
 		UPCFG0X = UPCFG0XTemp;
 		UPCFG1X = UPCFG1XTemp;
 		UPCFG2X = UPCFG2XTemp;
-		UPCONX  = UPCONXTemp;
-		UPINRQX = UPINRQXTemp;
 		UPIENX  = UPIENXTemp;
 
+		Pipe_SetInfiniteINRequests();
+	
 		if (!(Pipe_IsConfigured()))
 		  return false;		
 	}
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 829ca44f4739d9b5e1d8b9524b14d52a4bdfcfe0..31c960101fbb8784fc7a0d12f89033e38c6b82e2 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -62,6 +62,7 @@
   *   - Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time
   *     option was not enabled on the AVR8s
   *   - Fixed lack of C++ compatibility in some internal header files causing compile errors when using LUFA in C++ projects
+  *   - Fixed error in the pipe unordered allocation algorithm for the AVR8 devices breaking compatibility with some devices
   *  - Library Applications:
   *   - Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2
   *   - Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed