diff --git a/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommands.c b/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommands.c
index 827deb0a428ec996f2408718d709317dafdff091..eebc2ef35528a52887fa93331d5d0689b672f9d4 100644
--- a/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommands.c
+++ b/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommands.c
@@ -50,7 +50,7 @@ void Sideshow_ProcessCommandPacket(void)
 	Endpoint_SelectEndpoint(SIDESHOW_OUT_EPNUM);	
 	Endpoint_Read_Stream_LE(&PacketHeader, sizeof(SideShow_PacketHeader_t));
 	
-	PacketHeader.Type.Response = true;
+	PacketHeader.Type.TypeFields.Response = true;
 
 	printf("\r\nCmd: %lX", (PacketHeader.Type.TypeLong & 0x00FFFFFF));
 
@@ -108,7 +108,7 @@ void Sideshow_ProcessCommandPacket(void)
 			Endpoint_ClearOUT();
 
 			PacketHeader.Length   = sizeof(SideShow_PacketHeader_t);
-			PacketHeader.Type.NAK = true;
+			PacketHeader.Type.TypeFields.NAK = true;
 			
 			Endpoint_SelectEndpoint(SIDESHOW_IN_EPNUM);	
 			Endpoint_Write_Stream_LE(&PacketHeader, sizeof(SideShow_PacketHeader_t));		
@@ -135,7 +135,7 @@ static void SideShow_Sync(SideShow_PacketHeader_t* const PacketHeader)
 	Endpoint_ClearOUT();
 	
 	if (!(GUID_COMPARE(&ProtocolGUID, (uint32_t[])STANDARD_PROTOCOL_GUID)))
-	  PacketHeader->Type.NAK = true;
+	  PacketHeader->Type.TypeFields.NAK = true;
 	
 	Endpoint_SelectEndpoint(SIDESHOW_IN_EPNUM);
 	Endpoint_Write_Stream_LE(PacketHeader, sizeof(SideShow_PacketHeader_t));		
@@ -247,7 +247,7 @@ static void SideShow_GetCapabilities(SideShow_PacketHeader_t* const PacketHeader
 	}	
 	else
 	{
-		PacketHeader->Type.NAK = true;		
+		PacketHeader->Type.TypeFields.NAK = true;		
 		
 		printf(" WRONG GUID");
 		printf(" %lX %lX %lX %lX", Property.PropertyGUID.Chunks[0], Property.PropertyGUID.Chunks[1],
@@ -257,7 +257,7 @@ static void SideShow_GetCapabilities(SideShow_PacketHeader_t* const PacketHeader
 	Endpoint_SelectEndpoint(SIDESHOW_IN_EPNUM);
 	Endpoint_Write_Stream_LE(PacketHeader, sizeof(SideShow_PacketHeader_t));
 	
-	if (!(PacketHeader->Type.NAK))
+	if (!(PacketHeader->Type.TypeFields.NAK))
 	{
 		switch (PropertyData.DataType)
 		{
@@ -356,7 +356,7 @@ static void SideShow_AddApplication(SideShow_PacketHeader_t* const PacketHeader)
 		Endpoint_Discard_Stream(PacketHeader->Length);
 		Endpoint_ClearOUT();
 
-		PacketHeader->Type.NAK = true;
+		PacketHeader->Type.TypeFields.NAK = true;
 	}
 	else
 	{
@@ -394,7 +394,7 @@ static void SideShow_DeleteApplication(SideShow_PacketHeader_t* const PacketHead
 	if (AppToDelete != NULL)
 	  AppToDelete->InUse = false;
 	else
-	  PacketHeader->Type.NAK = true;
+	  PacketHeader->Type.TypeFields.NAK = true;
 
 	PacketHeader->Length = sizeof(SideShow_PacketHeader_t);
 
@@ -429,11 +429,11 @@ static void SideShow_AddContent(SideShow_PacketHeader_t* const PacketHeader)
 	if (Application == NULL)
 	{
 		SideShow_Discard_Byte_Stream();
-		PacketHeader->Type.NAK = true;
+		PacketHeader->Type.TypeFields.NAK = true;
 	}
 	else if (!(SideShow_AddSimpleContent(PacketHeader, Application)))
 	{
-		PacketHeader->Type.NAK = true;
+		PacketHeader->Type.TypeFields.NAK = true;
 	}
 	
 	Endpoint_ClearOUT();
@@ -461,7 +461,7 @@ static void SideShow_DeleteContent(SideShow_PacketHeader_t* const PacketHeader)
 	if ((Application != NULL) && (Application->CurrentContentID == ContentID))
 	  Application->HaveContent = false;
 	else
-	  PacketHeader->Type.NAK = true;
+	  PacketHeader->Type.TypeFields.NAK = true;
 	  
 	PacketHeader->Length = sizeof(SideShow_PacketHeader_t);
 
@@ -484,7 +484,7 @@ static void SideShow_DeleteAllContent(SideShow_PacketHeader_t* const PacketHeade
 	if (Application != NULL)
 	  Application->HaveContent = false;
 	else
-	  PacketHeader->Type.NAK = true;	  
+	  PacketHeader->Type.TypeFields.NAK = true;	  
 
 	PacketHeader->Length = sizeof(SideShow_PacketHeader_t);
 
diff --git a/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommon.h b/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommon.h
index b801ecfa5ac56db5532e72c58cb02aea71347411..8a90c50cfcb06f5ca93bad2fc6ef31e9fb41badd 100644
--- a/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommon.h
+++ b/Demos/Device/Incomplete/Sideshow/Lib/SideshowCommon.h
@@ -85,7 +85,7 @@
 				int ErrorCode     : 6;
 				int NAK           : 1;
 				int Response      : 1;				
-			};
+			} TypeFields;
 		} SideShowPacketType_t;
 	
 		typedef struct
diff --git a/Demos/Device/Incomplete/Sideshow/Sideshow.c b/Demos/Device/Incomplete/Sideshow/Sideshow.c
index e99a26b3696e581d6bbf8a79cc049eba3efba01e..f6ece61b02d0d934198fde4da4108f0c4181f875 100644
--- a/Demos/Device/Incomplete/Sideshow/Sideshow.c
+++ b/Demos/Device/Incomplete/Sideshow/Sideshow.c
@@ -122,7 +122,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
 			{
 				void*    DescriptorPointer;
 				uint16_t DescriptorSize = USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
-				                                                     &DescriptorPointer, &DescriptorSize);
+				                                                     &DescriptorPointer);
 
 				if (DescriptorSize == NO_DESCRIPTOR)
 				  return;
diff --git a/Demos/Device/Incomplete/Sideshow/makefile b/Demos/Device/Incomplete/Sideshow/makefile
index f0782f183b0233e6c09df7714bd7af8c97e3ab74..1565b991e122f56640d84b7ad9d6107a4a6e4f52 100644
--- a/Demos/Device/Incomplete/Sideshow/makefile
+++ b/Demos/Device/Incomplete/Sideshow/makefile
@@ -179,7 +179,7 @@ EXTRAINCDIRS = $(LUFA_PATH)/
 #     gnu89 = c89 plus GCC extensions
 #     c99   = ISO C99 standard (not yet fully implemented)
 #     gnu99 = c99 plus GCC extensions
-CSTANDARD = -std=gnu99
+CSTANDARD = -std=c99
 
 
 # Place -D or -U options here for C sources
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/makefile b/Demos/Device/Incomplete/TestAndMeasurement/makefile
index 856fc2bcbc01dae3df5d94733d671af315545554..94e697eaed5af1bcc18da29e81399775e9e1e5b6 100644
--- a/Demos/Device/Incomplete/TestAndMeasurement/makefile
+++ b/Demos/Device/Incomplete/TestAndMeasurement/makefile
@@ -173,7 +173,7 @@ EXTRAINCDIRS = $(LUFA_PATH)/
 #     gnu89 = c89 plus GCC extensions
 #     c99   = ISO C99 standard (not yet fully implemented)
 #     gnu99 = c99 plus GCC extensions
-CSTANDARD = -std=gnu99
+CSTANDARD = -std=c99
 
 
 # Place -D or -U options here for C sources
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 789cb898eb84da8804ed41b816bc15e6613294ee..5a21f514022fc633bd2987e83081f048a6046f99 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -434,6 +434,7 @@
   *    of device configurations can be defined statically
   *  - Removed VBUS events, as they are already exposed to the user application via the regular device connection and disconnection events
   *  - Renamed and altered existing events to properly separate out Host and Device mode events
+  *  - All demos switched over from GNU99 standards mode to C99 standards mode, to reduce the dependancies on GCC-only language extensions
   *
   *  <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/Projects/LEDNotifier/LEDNotifier.c b/Projects/LEDNotifier/LEDNotifier.c
index da4ee9e5ced57e6484d7aa776aafaf71b03bbc6a..d1f4451e7620331574de6b0eaf8fd0a13af8627e 100644
--- a/Projects/LEDNotifier/LEDNotifier.c
+++ b/Projects/LEDNotifier/LEDNotifier.c
@@ -113,11 +113,11 @@ int main(void)
 	for (;;)
 	{
 		/* Read in next LED colour command from the host */
-		uint8_t ColorUpdate = fgetc(&USBSerialStream);
+		uint8_t ColourUpdate = fgetc(&USBSerialStream);
 		
 		/* Top 3 bits select the LED, bottom 5 control the brightness */
-		uint8_t Channel = (ColorUpdate & 0b11100000);
-		uint8_t Duty    = (ColorUpdate & 0b00011111);
+		uint8_t Channel = (ColourUpdate & 0b11100000);
+		uint8_t Duty    = (ColourUpdate & 0b00011111);
 		
 		if (Channel & (1 << 5))
 		  SoftPWM_Channel1_Duty = Duty;