diff --git a/Bootloaders/DFU/Descriptors.c b/Bootloaders/DFU/Descriptors.c
index d55159060efe6a8677075802f15f08a650a4746c..ff33b6b64fe14211ab19d6a62d1c7e1c59384af6 100644
--- a/Bootloaders/DFU/Descriptors.c
+++ b/Bootloaders/DFU/Descriptors.c
@@ -111,7 +111,7 @@ const USB_Descriptor_Configuration_t ConfigurationDescriptor =
 			.DetachTimeout          = 0x0000,
 			.TransferSize           = 0x0C00,
 
-			.DFUSpecification       = VERSION_BCD(01.01)
+			.DFUSpecification       = VERSION_BCD(01.10)
 		}
 };
 
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 2076b4b6566a800cecc56347d8aa2e69a3506f3e..5770208d67d2d7d71839ed880205ba25c146df16 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -59,6 +59,8 @@
   *     defined (thanks to Steven Morehouse)
   *   - Fixed AVRISP-MKII programmer project reset line polarity inverted when the generated EEP file is loaded into the USB AVR's EEPROM and avr-dude is used
   *   - Fixed CDC and DFU bootloaders failing to compile when the bootloader section size is 8KB or more (thanks to Georg Glock)
+  *   - Fixed incorrect DFU version number reported to the host in the  DFU bootloader descriptors (thanks to Georg Glock)
+  *   - Fixed incorrect version hundredths value encoding in VERSION_BCD() macro (thanks to Georg Glock)
   *
   *  \section Sec_ChangeLog120219 Version 120219
   *  <b>New:</b>
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index cee2d5ec04927d972e39b30a4a5b454c67ac027d..c46129c48fe1fc2e8686b94e3a1775d16c94cbe6 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -94,8 +94,8 @@
 			 *
 			 *  \param[in]  x  Version number to encode as a 16-bit little-endian number, as a floating point number.
 			 */
-			#define VERSION_BCD(x)                    CPU_TO_LE16((((VERSION_TENS(x) << 4) | VERSION_ONES(x)) << 8) | \
-			                                          ((VERSION_TENTHS(x) << 4) | VERSION_HUNDREDTHS(x)))
+			#define VERSION_BCD(x)                    CPU_TO_LE16((VERSION_TENS(x) << 12)  | (VERSION_ONES(x) << 8) | \
+			                                                      (VERSION_TENTHS(x) << 4) | (VERSION_HUNDREDTHS(x) << 0) )
 
 			/** String language ID for the English language. Should be used in \ref USB_Descriptor_String_t descriptors
 			 *  to indicate that the English language is supported by the device in its string descriptors.
@@ -722,10 +722,10 @@
 	/* Private Interface - For use in library only: */
 	#if !defined(__DOXYGEN__)
 		/* Macros: */
-			#define VERSION_TENS(x)                   (int)((x) / 10)
-			#define VERSION_ONES(x)                   (int)((x) - (10 * VERSION_TENS(x)))
-			#define VERSION_TENTHS(x)                 (int)(((x) - (int)(x)) * 10)
-			#define VERSION_HUNDREDTHS(x)             (int)((((x) - (int)(x)) * 100) - (10 * VERSION_TENTHS(x)))
+			#define VERSION_TENS(x)                   (int)((int)(x) / 10)
+			#define VERSION_ONES(x)                   (int)((int)(x) % 10)
+			#define VERSION_TENTHS(x)                 (int)(((x *  1) - ((int)(x *  1))) * 10)
+			#define VERSION_HUNDREDTHS(x)             (int)(((x * 10) - ((int)(x * 10))) * 10)
 	#endif
 
 	/* Disable C linkage for C++ Compilers: */