diff --git a/Bootloaders/CDC/Descriptors.c b/Bootloaders/CDC/Descriptors.c
index 0e2b3c79e1d8e7be150c7b8aa2d99bb2aea8161b..089bd7a93af6b96d542cdf52910b6f4879fefcc7 100644
--- a/Bootloaders/CDC/Descriptors.c
+++ b/Bootloaders/CDC/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t DeviceDescriptor =
 	.ProductStrIndex        = 0x01,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in SRAM memory, describes the usage
diff --git a/Bootloaders/CDC/makefile b/Bootloaders/CDC/makefile
index 43341a6d5b15cbe383838fb2293df57504584988..91c8845d3060be0733939819378350ea85d1fa7b 100644
--- a/Bootloaders/CDC/makefile
+++ b/Bootloaders/CDC/makefile
@@ -119,7 +119,7 @@ LUFA_OPTS  = -D USB_DEVICE_ONLY
 LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 LUFA_OPTS += -D NO_INTERNAL_SERIAL
diff --git a/Bootloaders/DFU/Descriptors.c b/Bootloaders/DFU/Descriptors.c
index d8b734b124de436dd526cffa0bcbce264bbacb75..1510c7e86929700cd594f52b5538f778f0f00c85 100644
--- a/Bootloaders/DFU/Descriptors.c
+++ b/Bootloaders/DFU/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t DeviceDescriptor =
 	.ProductStrIndex        = 0x01,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Bootloaders/DFU/makefile b/Bootloaders/DFU/makefile
index dc275bc65b6f32bbc72bbb322c47f78c2f9596ea..2f9444b3424d1a1353d11b7de4e80c45ac3f5d4b 100644
--- a/Bootloaders/DFU/makefile
+++ b/Bootloaders/DFU/makefile
@@ -120,7 +120,7 @@ LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 LUFA_OPTS += -D CONTROL_ONLY_DEVICE
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=32
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 LUFA_OPTS += -D NO_INTERNAL_SERIAL
diff --git a/Bootloaders/TeensyHID/Descriptors.c b/Bootloaders/TeensyHID/Descriptors.c
index 99db8cac57848d03e897db79c9e93165f21fc4c6..2a4eeb7ac1474b54ed6f9b09c46439b65906785c 100644
--- a/Bootloaders/TeensyHID/Descriptors.c
+++ b/Bootloaders/TeensyHID/Descriptors.c
@@ -81,7 +81,7 @@ USB_Descriptor_Device_t DeviceDescriptor =
 	.ProductStrIndex        = 0x01,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Bootloaders/TeensyHID/makefile b/Bootloaders/TeensyHID/makefile
index 9b6c5d7d4502e74b723a66e48a07d1fdf2389f83..e7e14e7d595f0fb038640674da6fb4b4519e108b 100644
--- a/Bootloaders/TeensyHID/makefile
+++ b/Bootloaders/TeensyHID/makefile
@@ -120,7 +120,7 @@ LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D CONTROL_ONLY_DEVICE
 LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_RAM_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 LUFA_OPTS += -D NO_INTERNAL_SERIAL
diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.c b/Demos/Device/ClassDriver/AudioInput/Descriptors.c
index c47c4fcfca32520029579fe65502c583a7694089..e6419ad488c8e176d555ba54a95a4922d20c32aa 100644
--- a/Demos/Device/ClassDriver/AudioInput/Descriptors.c
+++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/AudioInput/makefile b/Demos/Device/ClassDriver/AudioInput/makefile
index e97cffb2fb289ab28df3800a3e8172d53891b2d7..586939d265ab78c63340d4fa13e5b7474a87dea7 100644
--- a/Demos/Device/ClassDriver/AudioInput/makefile
+++ b/Demos/Device/ClassDriver/AudioInput/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
index 8604c45f0a3dcf47bd579889f4e6688678ffd966..efbe82410fcd64ba37291a123a95d37120cb0ae6 100644
--- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
+++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/AudioOutput/makefile b/Demos/Device/ClassDriver/AudioOutput/makefile
index d61c27a214a0154957d86c0291a865d87165c6a5..3a3f90ec230d0edff2ff0570876dec480e433886 100644
--- a/Demos/Device/ClassDriver/AudioOutput/makefile
+++ b/Demos/Device/ClassDriver/AudioOutput/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/CDC/Descriptors.c b/Demos/Device/ClassDriver/CDC/Descriptors.c
index 1cdad8e8f3124a8b64169376573e18edbcbc2183..55b5cc196eff4e831311bc0c5c23c9144e69f4dd 100644
--- a/Demos/Device/ClassDriver/CDC/Descriptors.c
+++ b/Demos/Device/ClassDriver/CDC/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/CDC/makefile b/Demos/Device/ClassDriver/CDC/makefile
index e822c24ebe7d2cca539b6a53b2f57dd7bdfcc7a1..afd36f0e23d1b6234f2e96502b0cd7d77e66ab96 100644
--- a/Demos/Device/ClassDriver/CDC/makefile
+++ b/Demos/Device/ClassDriver/CDC/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/DualCDC/Descriptors.c b/Demos/Device/ClassDriver/DualCDC/Descriptors.c
index 92b3eb930e9d6137276ee09fc039afbfeb3f9055..80f1a85a0f847f453a14c8c34d2ef26c032205f4 100644
--- a/Demos/Device/ClassDriver/DualCDC/Descriptors.c
+++ b/Demos/Device/ClassDriver/DualCDC/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 	
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/DualCDC/makefile b/Demos/Device/ClassDriver/DualCDC/makefile
index 46ec2294b103eefe737d92e18acebf063d26afd6..6c740f96c1b593c345eb1f97b8effa088ebeea83 100644
--- a/Demos/Device/ClassDriver/DualCDC/makefile
+++ b/Demos/Device/ClassDriver/DualCDC/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
index abc360bf6ac1574dfcd934f56b20e111b5e24f70..ba4e51e2c2ddcdbeb2e60811b01c898d137265ff 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
@@ -87,7 +87,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/GenericHID/makefile b/Demos/Device/ClassDriver/GenericHID/makefile
index bc3dc3a296d718e893a5a7c6b03b0493381e6056..a304eff18917c9aa0ef90adab00eaff670317c9b 100644
--- a/Demos/Device/ClassDriver/GenericHID/makefile
+++ b/Demos/Device/ClassDriver/GenericHID/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c
index 84901b618bc4bfd3be24ad2a451bf9ec009bb603..0550c3e10ea4b943a58ad54ad114fca0553fb80f 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.c
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c
@@ -97,7 +97,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/Joystick/makefile b/Demos/Device/ClassDriver/Joystick/makefile
index 393e58b14c329bdf5da11290aa8a77f7882a2fb1..1432956bfe779096a81d1fff3bd8ccdde88f883c 100644
--- a/Demos/Device/ClassDriver/Joystick/makefile
+++ b/Demos/Device/ClassDriver/Joystick/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
index 49852eb4a44b21696fa3ebdc9a65f7daa1169967..90a852fbc33b15deb6bac52ee084b267095007f9 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
@@ -104,7 +104,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/Keyboard/makefile b/Demos/Device/ClassDriver/Keyboard/makefile
index 5a11201d6c3be57225d87c5105e0992d7592fbc5..98671a51e89a4c1eed13246d3176c8c167676fcf 100644
--- a/Demos/Device/ClassDriver/Keyboard/makefile
+++ b/Demos/Device/ClassDriver/Keyboard/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
index 40917f04b6191d3604c26288eca8ef650042ea15..8f20bb82440025127499e9ab97576dbe3255e790 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
@@ -137,7 +137,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/makefile b/Demos/Device/ClassDriver/KeyboardMouse/makefile
index 1b086f3bf9145cb13a4beb4b980c48cff31c04e0..ec5f34dc83baa696f115bdbb1c96249482066b3f 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/makefile
+++ b/Demos/Device/ClassDriver/KeyboardMouse/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.c b/Demos/Device/ClassDriver/MIDI/Descriptors.c
index 0185c7702cec242eb4cd94910b62414a48866d71..1446de05bf960b809c8c021388a5c490f0191fec 100644
--- a/Demos/Device/ClassDriver/MIDI/Descriptors.c
+++ b/Demos/Device/ClassDriver/MIDI/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/MIDI/makefile b/Demos/Device/ClassDriver/MIDI/makefile
index 694019e4408931015aefdbc81c6aeb49ea5e94a7..8f39f55d6940daabcb509757ae5d5b3fad075dc7 100644
--- a/Demos/Device/ClassDriver/MIDI/makefile
+++ b/Demos/Device/ClassDriver/MIDI/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.c b/Demos/Device/ClassDriver/MassStorage/Descriptors.c
index 13d18a69d127a82b619defe8af41b19f99ea4eb2..bb27f2bc6024176637de8a4b77a490150f6bee12 100644
--- a/Demos/Device/ClassDriver/MassStorage/Descriptors.c
+++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/MassStorage/makefile b/Demos/Device/ClassDriver/MassStorage/makefile
index 15fc6f1b87fe44aab8d71945f3129e88d3ef94f2..0da371baec6e56a500686fa94f2923b4518b658d 100644
--- a/Demos/Device/ClassDriver/MassStorage/makefile
+++ b/Demos/Device/ClassDriver/MassStorage/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c
index 65ba83ec514329b4b5ed0c8d48840ee4d2944e67..c701f71a41e9fa175783cde56f2c79c892f7ae34 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c
@@ -97,7 +97,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/Mouse/makefile b/Demos/Device/ClassDriver/Mouse/makefile
index 7b1cd5b8d7672288b12dec77aa7892aef3878c22..f2a6a005ee19f0f851aad487ce92aae52530e398 100644
--- a/Demos/Device/ClassDriver/Mouse/makefile
+++ b/Demos/Device/ClassDriver/Mouse/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
index c1fdbf83fd909f18f5f7bd271798b621d72cbfda..38abf1a76831c901c8c752906d740e861fde38d5 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
+++ b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/makefile b/Demos/Device/ClassDriver/RNDISEthernet/makefile
index 60a07ce7854458e549d2ea7e597ab5b074207082..eb03d62ac8b821c9001a7d67c50c77787c05bbfa 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/makefile
+++ b/Demos/Device/ClassDriver/RNDISEthernet/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c
index 38f5689b57c53872a88ffefd3d28072ff2cb2d47..0669577fa00baf7d96298e52f617f44a544aa1a0 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c
+++ b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/ClassDriver/USBtoSerial/makefile b/Demos/Device/ClassDriver/USBtoSerial/makefile
index 930652746f73ca2b3bc28c16ff3a279ddee478a9..34445ef1d38beaada93e523a702965b128f850a2 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/makefile
+++ b/Demos/Device/ClassDriver/USBtoSerial/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/Incomplete/Sideshow/makefile b/Demos/Device/Incomplete/Sideshow/makefile
index 1754388f0d0f9c69a7cd3f19586546d19476ad73..018c2614084964124d2a962fe205a5120a393a86 100644
--- a/Demos/Device/Incomplete/Sideshow/makefile
+++ b/Demos/Device/Incomplete/Sideshow/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/AudioInput/Descriptors.c b/Demos/Device/LowLevel/AudioInput/Descriptors.c
index ad7439ed93d309b9cb3fd3ed51afa947366d01d6..ef278345752da917e0bca67c7c56717d9191c65d 100644
--- a/Demos/Device/LowLevel/AudioInput/Descriptors.c
+++ b/Demos/Device/LowLevel/AudioInput/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/AudioInput/makefile b/Demos/Device/LowLevel/AudioInput/makefile
index d1d946ceb5c65fa6c3ea4a4584a6db600848c85e..34deacc593e1845bb62a69b0d068c3e21516d518 100644
--- a/Demos/Device/LowLevel/AudioInput/makefile
+++ b/Demos/Device/LowLevel/AudioInput/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/AudioOutput/Descriptors.c b/Demos/Device/LowLevel/AudioOutput/Descriptors.c
index 55f5e98097458aa646205ca728d94d15748d1ec4..7ca11cec8963b0763df1c040c88063a66743ad8f 100644
--- a/Demos/Device/LowLevel/AudioOutput/Descriptors.c
+++ b/Demos/Device/LowLevel/AudioOutput/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/AudioOutput/makefile b/Demos/Device/LowLevel/AudioOutput/makefile
index e3499b40a96ca918278d962b70a048e613fe69f2..0041d7b55276a27d46fd621d5ebe360cd5cab7ff 100644
--- a/Demos/Device/LowLevel/AudioOutput/makefile
+++ b/Demos/Device/LowLevel/AudioOutput/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/CDC/Descriptors.c b/Demos/Device/LowLevel/CDC/Descriptors.c
index 581c1c407f2764a90f213e90f436b6596bfbdea0..0bd16754810bfe1edf4120cd2cc8e88dd9ea4a0b 100644
--- a/Demos/Device/LowLevel/CDC/Descriptors.c
+++ b/Demos/Device/LowLevel/CDC/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/CDC/makefile b/Demos/Device/LowLevel/CDC/makefile
index 80821ad6bbdcd0af56e6e76074426932a1024b37..c2a1f22bf975d9c3739d37af1ff0e72c94bdad33 100644
--- a/Demos/Device/LowLevel/CDC/makefile
+++ b/Demos/Device/LowLevel/CDC/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/DualCDC/Descriptors.c b/Demos/Device/LowLevel/DualCDC/Descriptors.c
index d3710c1b489d1814f36a55eb0c68d78972055f16..fa22c6d7181ea00c9cbd7c1ef30d79fbc81f6d32 100644
--- a/Demos/Device/LowLevel/DualCDC/Descriptors.c
+++ b/Demos/Device/LowLevel/DualCDC/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/DualCDC/makefile b/Demos/Device/LowLevel/DualCDC/makefile
index 117fdbd83446fe8a5655fd42e50242fbb4e91b20..4d49bdc33081d1e39a072ce65d29735190a5f37e 100644
--- a/Demos/Device/LowLevel/DualCDC/makefile
+++ b/Demos/Device/LowLevel/DualCDC/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.c b/Demos/Device/LowLevel/GenericHID/Descriptors.c
index ca1a110e7c360f6c0341808320ad28bd1880552f..ad78963e8211488352370cc71c311bceb9772dea 100644
--- a/Demos/Device/LowLevel/GenericHID/Descriptors.c
+++ b/Demos/Device/LowLevel/GenericHID/Descriptors.c
@@ -87,7 +87,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/GenericHID/makefile b/Demos/Device/LowLevel/GenericHID/makefile
index a6130c35d7abc739abd11b618ed621712039b922..c57bea7995eb9c4864ec58135d5cda6921c3f186 100644
--- a/Demos/Device/LowLevel/GenericHID/makefile
+++ b/Demos/Device/LowLevel/GenericHID/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.c b/Demos/Device/LowLevel/Joystick/Descriptors.c
index bd7be658a648511c7e5ee23b6cd269ebfe44e8d2..fd242b43b7ee2845822ad30b49ce644eb34f97f5 100644
--- a/Demos/Device/LowLevel/Joystick/Descriptors.c
+++ b/Demos/Device/LowLevel/Joystick/Descriptors.c
@@ -97,7 +97,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/Joystick/makefile b/Demos/Device/LowLevel/Joystick/makefile
index 0510a6992648366328c3b10021980a09e68c3810..d26cc91969981ada88ac8f2014703dd1451bb063 100644
--- a/Demos/Device/LowLevel/Joystick/makefile
+++ b/Demos/Device/LowLevel/Joystick/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.c b/Demos/Device/LowLevel/Keyboard/Descriptors.c
index ddd19fc8cf582c3d26daef5b6d44e5b5f2f6511c..1518412941f4aacf9faedb2b9f9adb9eb2f2b590 100644
--- a/Demos/Device/LowLevel/Keyboard/Descriptors.c
+++ b/Demos/Device/LowLevel/Keyboard/Descriptors.c
@@ -104,7 +104,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/Keyboard/makefile b/Demos/Device/LowLevel/Keyboard/makefile
index d0a87a2c95db282480ad27fa3065784df38d063b..5a7d4c70f47672601a0c197c6be331f55f469130 100644
--- a/Demos/Device/LowLevel/Keyboard/makefile
+++ b/Demos/Device/LowLevel/Keyboard/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
index 145708db9361235be254b4585c6267ec06f64319..b137570fe9058aa0782b30218a84ad8c3eb6e893 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
+++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
@@ -137,7 +137,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/KeyboardMouse/makefile b/Demos/Device/LowLevel/KeyboardMouse/makefile
index 597658e6c3ec010bef321022ffed275caf60d16d..c067360c7a4847c172f20de876e196facca06aa1 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/makefile
+++ b/Demos/Device/LowLevel/KeyboardMouse/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/MIDI/Descriptors.c b/Demos/Device/LowLevel/MIDI/Descriptors.c
index e00855b89524df83364f0e392dcfe5203a6ef5de..936daaba5cc06468eae2b0a89d5c664880aa3685 100644
--- a/Demos/Device/LowLevel/MIDI/Descriptors.c
+++ b/Demos/Device/LowLevel/MIDI/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/MIDI/makefile b/Demos/Device/LowLevel/MIDI/makefile
index 1789c396e45c6ce086378283bcaa3ff563dfa412..7847af05f028178a990908ce9ed79abbce59ea0b 100644
--- a/Demos/Device/LowLevel/MIDI/makefile
+++ b/Demos/Device/LowLevel/MIDI/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.c b/Demos/Device/LowLevel/MassStorage/Descriptors.c
index 13d18a69d127a82b619defe8af41b19f99ea4eb2..bb27f2bc6024176637de8a4b77a490150f6bee12 100644
--- a/Demos/Device/LowLevel/MassStorage/Descriptors.c
+++ b/Demos/Device/LowLevel/MassStorage/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/MassStorage/makefile b/Demos/Device/LowLevel/MassStorage/makefile
index 6d3fb0a04d5e866b02ab7361069b8bee0af20c9e..788dbb216f09894f5bdcbe766ae913baeb69cec5 100644
--- a/Demos/Device/LowLevel/MassStorage/makefile
+++ b/Demos/Device/LowLevel/MassStorage/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY 
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.c b/Demos/Device/LowLevel/Mouse/Descriptors.c
index d147657372eb548801e254bfe8db0621af106b56..e028aeb45cf590a18c0afb838524d044453db844 100644
--- a/Demos/Device/LowLevel/Mouse/Descriptors.c
+++ b/Demos/Device/LowLevel/Mouse/Descriptors.c
@@ -97,7 +97,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/Mouse/makefile b/Demos/Device/LowLevel/Mouse/makefile
index beb76ab8bff691718cbaeabd681025556daf4b26..aba69e487de390a7c8db0f92336077658fc40882 100644
--- a/Demos/Device/LowLevel/Mouse/makefile
+++ b/Demos/Device/LowLevel/Mouse/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
index 1be5bfd26fca8a6ac5e7950f8c9b8b15a416bfcd..425bec2cf0f8f0f5ee106424a621f1c15efc3383 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
+++ b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/RNDISEthernet/makefile b/Demos/Device/LowLevel/RNDISEthernet/makefile
index 612718e637c666235cc3bbe25ad75d76dbbbc57a..c4e9ddf2a098bef057ee2e8a759b18663de90ccb 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/makefile
+++ b/Demos/Device/LowLevel/RNDISEthernet/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c
index c586d68ccb6f7b2acd2dac02569817763b0bb060..6dd375eea3f827ad26643fc5cc4fce7f7dbe481e 100644
--- a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c
+++ b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Demos/Device/LowLevel/USBtoSerial/makefile b/Demos/Device/LowLevel/USBtoSerial/makefile
index 9a08fb4ddf5c9dd9dc387cde44fed4f89e03bdc4..be87e65a4623f89d66a95715776113871718f4a9 100644
--- a/Demos/Device/LowLevel/USBtoSerial/makefile
+++ b/Demos/Device/LowLevel/USBtoSerial/makefile
@@ -127,7 +127,7 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D NO_STREAM_CALLBACKS
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
index 0cbb771227645b825a268966d79f1d43c6d732b9..6678b2276662971a90457db3e02d094490493ed0 100644
--- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c
+++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c
@@ -73,15 +73,14 @@ int main(void)
 				uint8_t  ConfigDescriptorData[512];
 
 				if ((USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful) ||
-				    (ConfigDescriptorSize > sizeof(ConfigDescriptorData)))
+				    (ConfigDescriptorSize > sizeof(ConfigDescriptorData)) ||
+					(USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData)))
 				{
 					printf("Error Retrieving Configuration Descriptor.\r\n");
 					LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 					USB_HostState = HOST_STATE_WaitForDeviceRemoval;
 					break;
 				}
-				  
-				USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData);
 
 				if (CDC_Host_ConfigurePipes(&VirtualSerial_CDC_Interface,
 				                            ConfigDescriptorSize, ConfigDescriptorData) != CDC_ENUMERROR_NoError)
diff --git a/Demos/Host/ClassDriver/MouseHost/MouseHost.c b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
index 61d7d7bb6f7c642981303ab307becfed5f337cfd..ec431638657a08639043ceb0c575745f8bfc95ba 100644
--- a/Demos/Host/ClassDriver/MouseHost/MouseHost.c
+++ b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
@@ -75,15 +75,14 @@ int main(void)
 				uint8_t  ConfigDescriptorData[512];
 
 				if ((USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful) ||
-				    (ConfigDescriptorSize > sizeof(ConfigDescriptorData)))
+				    (ConfigDescriptorSize > sizeof(ConfigDescriptorData)) ||
+					(USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData)))
 				{
 					printf("Error Retrieving Configuration Descriptor.\r\n");
 					LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 					USB_HostState = HOST_STATE_WaitForDeviceRemoval;
 					break;
 				}
-				
-				USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData);
 
 				if (HID_Host_ConfigurePipes(&Mouse_HID_Interface,
 				                            ConfigDescriptorSize, ConfigDescriptorData) != HID_ENUMERROR_NoError)
diff --git a/Demos/OTG/TestApp/Descriptors.c b/Demos/OTG/TestApp/Descriptors.c
index f8f53cfd71cbadfc4c35ecb27a20ddeeefcdf0c2..85172bd8d0901f03a1672253fc6b05030e02703b 100644
--- a/Demos/OTG/TestApp/Descriptors.c
+++ b/Demos/OTG/TestApp/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = NO_DESCRIPTOR,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index fbb45acd2a64f45084e17a3722fd6b9756b344f4..40f7d2f49864c1c7df0fac2ee3e1db089a0eb691 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -136,8 +136,8 @@ void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* const HIDInterf
 bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
 {
 	memset(&HIDInterfaceInfo->State, 0x00, sizeof(HIDInterfaceInfo->State));
-	HIDInterfaceInfo->State.IdleCount = 500;
 	HIDInterfaceInfo->State.UsingReportProtocol = true;
+	HIDInterfaceInfo->State.IdleCount = 500;
 
 	if (!(Endpoint_ConfigureEndpoint(HIDInterfaceInfo->Config.ReportINEndpointNumber, EP_TYPE_INTERRUPT,
 									 ENDPOINT_DIR_IN, HIDInterfaceInfo->Config.ReportINEndpointSize, ENDPOINT_BANK_SINGLE)))
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.c b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
index 793b55f9b3b39e680319a6469b6ef936d7c0ee3d..7fecd1f546080a1d7df2683bfeece5a02439ccf3 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.c
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
@@ -141,8 +141,8 @@ static void USB_Device_SetConfiguration(void)
 {
 	bool AlreadyConfigured = (USB_ConfigurationNumber != 0);
 
-#if defined(TOTAL_NUM_CONFIGURATIONS)
-	if ((uint8_t)USB_ControlRequest.wValue > TOTAL_NUM_CONFIGURATIONS)
+#if defined(FIXED_NUM_CONFIGURATIONS)
+	if ((uint8_t)USB_ControlRequest.wValue > FIXED_NUM_CONFIGURATIONS)
 	  return;
 #else
 	#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.h b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
index 55e3b8253ee0f95f9fc32e93465b9dacfda70091..a856dede48e0c49862df0e01ba811a09e1c4c6e0 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
@@ -51,7 +51,7 @@
 	/* Public Interface - May be used in end-application: */
 		/* Macros: */
 			#if defined(USE_SINGLE_DEVICE_CONFIGURATION)
-				#define TOTAL_NUM_CONFIGURATIONS           1
+				#define FIXED_NUM_CONFIGURATIONS           1
 			#endif
 	
 		/* Enums: */
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index abda442a3f72edf61bb369484e8f3a8cb7dbe99d..ec2236a2c5a5a44f114bd57654ccbd05c38c90f4 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -29,7 +29,7 @@
   *  - Added new FAST_STREAM_TRANSFERS compile time option for faster stream transfers via multiple bytes copied per stream loop
   *  - Added stdio stream demo code to the CDC device demos, to show how to create standard streams out of the virtual serial ports
   *  - Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions
-  *  - Added new USE_FLASH_DESCRIPTORS and TOTAL_NUM_CONFIGURATIONS compile time options
+  *  - Added new USE_FLASH_DESCRIPTORS and FIXED_NUM_CONFIGURATIONS compile time options
   *  - Added support for the new ATMEGA32U2, ATMEGA16U2 and ATMEGA8U2 AVR models
   *  - Added new USB_DeviceState variable to keep track of the current Device mode USB state
   *  - Added new LEDs_ToggleLEDs() function to the LEDs driver
@@ -57,6 +57,7 @@
   *  - Internal per-device preprocessing conditions changed to per-device series rather than per-controller group for finer-grain
   *    internal control
   *  - Interrupts are no longer disabled during the processing of Control Requests on the default endpoint while in device mode
+  *  - AudioOutput demos now always output to board LEDs, regardless of output mode (removed AUDIO_OUT_LEDS project option)
   *
   *  <b>Fixed:</b>
   *  - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix
diff --git a/LUFA/ManPages/CompileTimeTokens.txt b/LUFA/ManPages/CompileTimeTokens.txt
index 513d85454ca83770a84c68a0b402c0eefe1b16d3..f3cb27b0a1d855490d926801bf611bb061207474 100644
--- a/LUFA/ManPages/CompileTimeTokens.txt
+++ b/LUFA/ManPages/CompileTimeTokens.txt
@@ -109,7 +109,7 @@
  *  reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
  *  implicitly via the library APIs.
  *
- *  <b>TOTAL_NUM_CONFIGURATIONS</b> - ( \ref Group_Device ) \n
+ *  <b>FIXED_NUM_CONFIGURATIONS</b> - ( \ref Group_Device ) \n
  *  By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces
  *  the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in
  *  EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this value may be fixed via this token in the project
diff --git a/Projects/Benito/Descriptors.c b/Projects/Benito/Descriptors.c
index 79261e7e0490ffc88061822632958056f37e26c0..b66c991b6e5bf649ad549a6e37a9ef059abb907c 100644
--- a/Projects/Benito/Descriptors.c
+++ b/Projects/Benito/Descriptors.c
@@ -61,7 +61,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Projects/Benito/makefile b/Projects/Benito/makefile
index 634d56bb98ead4923fa9eaf05dc7b4801670edff..88c62e9e82da60591330b30c5185c55ac7238ea2 100644
--- a/Projects/Benito/makefile
+++ b/Projects/Benito/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../../
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 
diff --git a/Projects/Magstripe/Descriptors.c b/Projects/Magstripe/Descriptors.c
index 7aa646613b1e1b7869705bc051b1c0ea58dd6ed4..d4c5472d080f9d098890840b4cb32f57f509f73d 100644
--- a/Projects/Magstripe/Descriptors.c
+++ b/Projects/Magstripe/Descriptors.c
@@ -95,7 +95,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.ProductStrIndex        = 0x02,
 	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 		
-	.NumberOfConfigurations = 1
+	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 };
 
 /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
diff --git a/Projects/Magstripe/makefile b/Projects/Magstripe/makefile
index b308d833cf749ba3e7fa802ced0875e71223fa69..474a827a5dbe7d74e106ca612607e242431690af 100644
--- a/Projects/Magstripe/makefile
+++ b/Projects/Magstripe/makefile
@@ -126,7 +126,7 @@ LUFA_PATH = ../..
 LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES
 LUFA_OPTS += -D USB_DEVICE_ONLY
 LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1
+LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"