diff --git a/Bootloaders/Printer/BootloaderPrinter.c b/Bootloaders/Printer/BootloaderPrinter.c
index 629cc07b40346ef754f80bbb7909fd7f36d0e11a..94521ef163b20ffba0116ee33d98695c3aea75d1 100644
--- a/Bootloaders/Printer/BootloaderPrinter.c
+++ b/Bootloaders/Printer/BootloaderPrinter.c
@@ -67,7 +67,7 @@ USB_ClassInfo_PRNT_Device_t TextOnly_Printer_Interface =
 /** Intel HEX parser state machine state information, to track the contents of
  *  a HEX file streamed in as a sequence of arbitrary bytes.
  */
-struct
+static struct
 {
 	/** Current HEX parser state machine state. */
 	uint8_t  ParserState;
@@ -87,11 +87,11 @@ struct
 	/** Checksum of the current record received so far. */
 	uint8_t  Checksum;
 	/** Starting address of the last addressed FLASH page. */
-	uint32_t PageStartAddress;
+	flashaddr_t PageStartAddress;
 	/** Current 32-bit byte extended base address in FLASH being targeted. */
-	uint32_t CurrBaseAddress;
+	flashaddr_t CurrBaseAddress;
 	/** Current 32-bit byte address in FLASH being targeted. */
-	uint32_t CurrAddress;
+	flashaddr_t CurrAddress;
 } HEXParser;
 
 /** Indicates if there is data waiting to be written to a physical page of
diff --git a/Bootloaders/Printer/BootloaderPrinter.h b/Bootloaders/Printer/BootloaderPrinter.h
index 78f938c6899f5c29703062567dd80dd9e971cbc8..c927ec5ef56f7fc1f81cedfb38ca22ed16f9aecb 100644
--- a/Bootloaders/Printer/BootloaderPrinter.h
+++ b/Bootloaders/Printer/BootloaderPrinter.h
@@ -74,6 +74,13 @@
 		/** Magic bootloader key to unlock forced application start mode. */
 		#define MAGIC_BOOT_KEY             0xDC42
 
+	/* Type Defines: */
+		#if (FLASHEND > 0xFFFF)
+			typedef uint32_t flashaddr_t;
+		#else
+			typedef uint16_t flashaddr_t;
+		#endif
+
 	/* Enums: */
 		/** Intel HEX parser state machine states. */
 		enum HEX_Parser_States_t