diff --git a/Bootloaders/CDC/BootloaderAPI.c b/Bootloaders/CDC/BootloaderAPI.c
index 326adb4d3c3969d02bdc9cc70a1a4a00e300b0db..26705f876a81ed2adc3915cc52f492a0d21f7776 100644
--- a/Bootloaders/CDC/BootloaderAPI.c
+++ b/Bootloaders/CDC/BootloaderAPI.c
@@ -71,4 +71,3 @@ void BootloaderAPI_WriteLock(const uint8_t LockBits)
 {
 	boot_lock_bits_set_safe(LockBits);
 }
-
diff --git a/Bootloaders/CDC/BootloaderAPITable.S b/Bootloaders/CDC/BootloaderAPITable.S
index 7f015f20ac269bba2c0d5e36cc8bc367a4818ed3..b1d1b05715eaa427cc76d8e7a5ab4baa61921460 100644
--- a/Bootloaders/CDC/BootloaderAPITable.S
+++ b/Bootloaders/CDC/BootloaderAPITable.S
@@ -32,12 +32,17 @@
 .section .apitable, "ax"
 .org 0
 
+; API function jump table
 .global BootloaderAPI_JumpTable
 BootloaderAPI_JumpTable:
-	jmp BootloaderAPI_ErasePage
-	jmp BootloaderAPI_WritePage
-	jmp BootloaderAPI_FillWord
-	jmp BootloaderAPI_ReadSignature
-	jmp BootloaderAPI_ReadFuse
-	jmp BootloaderAPI_ReadLock
-	jmp BootloaderAPI_WriteLock
+	rjmp BootloaderAPI_ErasePage
+	rjmp BootloaderAPI_WritePage
+	rjmp BootloaderAPI_FillWord
+	rjmp BootloaderAPI_ReadSignature
+	rjmp BootloaderAPI_ReadFuse
+	rjmp BootloaderAPI_ReadLock
+	rjmp BootloaderAPI_WriteLock
+
+; Bootloader table signature
+.org 30
+	.word 0xDCFB
diff --git a/Bootloaders/CDC/BootloaderCDC.txt b/Bootloaders/CDC/BootloaderCDC.txt
index ab45ad1b8279f685ac34c52c6735b0dd246b48c9..584143e348a684f524a5d7b335c2c6dc683703f3 100644
--- a/Bootloaders/CDC/BootloaderCDC.txt
+++ b/Bootloaders/CDC/BootloaderCDC.txt
@@ -103,8 +103,15 @@
  *  uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address)                = BOOTLOADER_API_START(4);
  *  uint8_t (*BootloaderAPI_ReadLock)(void)                            = BOOTLOADER_API_START(5);
  *  void    (*BootloaderAPI_WriteLock)(uint8_t LockBits)               = BOOTLOADER_API_START(6);
+ *
+ *  #define BOOTLOADER_SIG_START               (FLASHEND - 32)
+ *  #define BOOTLOADER_SIGNATURE               0xDCFB
  *  \endcode
  *
+ *  Bootloaders reporting a device release revision number of 1.00 or greater are bootloader API enabled. From the application
+ *  the API support of the bootloader can be detected by reading the FLASH memory bytes located at address \c BOOTLOADER_SIG_START
+ *  and comparing them to the value \c BOOTLOADER_SIGNATURE.
+ *
  *  \section Sec_Options Project Options
  *
  *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
diff --git a/Bootloaders/CDC/Descriptors.c b/Bootloaders/CDC/Descriptors.c
index bf8c8195acf9932ebd40920d867773101ef5b3d9..18afdf8b02a7a60b4ce44068647b8ec7f0c89967 100644
--- a/Bootloaders/CDC/Descriptors.c
+++ b/Bootloaders/CDC/Descriptors.c
@@ -55,7 +55,7 @@ const USB_Descriptor_Device_t DeviceDescriptor =
 
 	.VendorID               = 0x03EB,
 	.ProductID              = 0x204A,
-	.ReleaseNumber          = VERSION_BCD(00.01),
+	.ReleaseNumber          = VERSION_BCD(01.00),
 
 	.ManufacturerStrIndex   = NO_DESCRIPTOR,
 	.ProductStrIndex        = 0x01,
diff --git a/Bootloaders/DFU/BootloaderAPITable.S b/Bootloaders/DFU/BootloaderAPITable.S
index 7f015f20ac269bba2c0d5e36cc8bc367a4818ed3..b1d1b05715eaa427cc76d8e7a5ab4baa61921460 100644
--- a/Bootloaders/DFU/BootloaderAPITable.S
+++ b/Bootloaders/DFU/BootloaderAPITable.S
@@ -32,12 +32,17 @@
 .section .apitable, "ax"
 .org 0
 
+; API function jump table
 .global BootloaderAPI_JumpTable
 BootloaderAPI_JumpTable:
-	jmp BootloaderAPI_ErasePage
-	jmp BootloaderAPI_WritePage
-	jmp BootloaderAPI_FillWord
-	jmp BootloaderAPI_ReadSignature
-	jmp BootloaderAPI_ReadFuse
-	jmp BootloaderAPI_ReadLock
-	jmp BootloaderAPI_WriteLock
+	rjmp BootloaderAPI_ErasePage
+	rjmp BootloaderAPI_WritePage
+	rjmp BootloaderAPI_FillWord
+	rjmp BootloaderAPI_ReadSignature
+	rjmp BootloaderAPI_ReadFuse
+	rjmp BootloaderAPI_ReadLock
+	rjmp BootloaderAPI_WriteLock
+
+; Bootloader table signature
+.org 30
+	.word 0xDCFB
diff --git a/Bootloaders/DFU/BootloaderDFU.txt b/Bootloaders/DFU/BootloaderDFU.txt
index 94657f355b8a18e41ead7e683777242645e1a979..f7f5ee9a8afa08e7baea927d1ecb48111b519832 100644
--- a/Bootloaders/DFU/BootloaderDFU.txt
+++ b/Bootloaders/DFU/BootloaderDFU.txt
@@ -108,8 +108,14 @@
  *  uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address)                = BOOTLOADER_API_START(4);
  *  uint8_t (*BootloaderAPI_ReadLock)(void)                            = BOOTLOADER_API_START(5);
  *  void    (*BootloaderAPI_WriteLock)(uint8_t LockBits)               = BOOTLOADER_API_START(6);
+ *
+ *  #define BOOTLOADER_SIG_START               (FLASHEND - 32)
+ *  #define BOOTLOADER_SIGNATURE               0xDCFB
  *  \endcode
  *
+ *  From the application the API support of the bootloader can be detected by reading the FLASH memory bytes located at address
+ *  \c BOOTLOADER_SIG_START and comparing them to the value \c BOOTLOADER_SIGNATURE.
+ *
  *  \section Sec_Options Project Options
  *
  *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index bb00436ec995a9f1c3405f7510a9e54bd92a0e6b..7fc06bd99ffddd2ebf3e984c4c565101ca2ead45 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -31,6 +31,7 @@
   *   - Altered the Mass Storage Host class driver so that SCSI data STALLs from the attached device can be recovered from automatically without
   *     having to reset the Mass Storage interface
   *   - USB_CONFIG_ATTR_BUSPOWERED constant renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed (thanks to NXP Semiconductors)
+  *   - Reordered board name definition indexes so that a mispelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
   *  - Library Applications:
   *   - Altered the Mass Storage Host LowLevel demo so that SCSI data STALLs from the attached device can be recovered from automatically without
   *     having to reset the Mass Storage interface