diff --git a/Bootloaders/HID/BootloaderHID.c b/Bootloaders/HID/BootloaderHID.c
index f048043069662fcf7da165d78cf8c064823fca19..484942f978163328523bf6f56c871b9519071259 100644
--- a/Bootloaders/HID/BootloaderHID.c
+++ b/Bootloaders/HID/BootloaderHID.c
@@ -113,10 +113,18 @@ void EVENT_USB_Device_ControlRequest(void)
 			while (!(Endpoint_IsOUTReceived()));
 		
 			/* Read in the write destination address */
+			#if (FLASHEND > 0xFFFF)
+			uint32_t PageAddress = ((uint32_t)Endpoint_Read_16_LE() << 8);
+			#else
 			uint16_t PageAddress = Endpoint_Read_16_LE();
+			#endif
 			
 			/* Check if the command is a program page command, or a start application command */
-			if (PageAddress == COMMAND_STARTAPPLICATION)
+			#if (FLASHEND > 0xFFFF)
+			if ((uint16_t)(PageAddress >> 8) == COMMAND_STARTAPPLICATION)
+			#else
+			if (PageAddress == COMMAND_STARTAPPLICATION)			
+			#endif
 			{
 				RunBootloader = false;
 			}