diff --git a/Demo/PIC24_MPLAB/RTOSDemo.mcw b/Demo/PIC24_MPLAB/RTOSDemo.mcw
index 61dc2e940e..be6548079a 100644
Binary files a/Demo/PIC24_MPLAB/RTOSDemo.mcw and b/Demo/PIC24_MPLAB/RTOSDemo.mcw differ
diff --git a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp b/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
index 82a1d5ad45..3f74120a97 100644
--- a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
+++ b/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcp
@@ -2,6 +2,7 @@
 magic_cookie={66E99B07-E706-4689-9E80-9B2582898A13}
 file_version=1.0
 [PATH_INFO]
+BuildDirPolicy=BuildDirIsSourceDir
 dir_src=
 dir_bin=
 dir_tmp=
@@ -15,6 +16,60 @@ filter_inc=*.h;*.inc
 filter_obj=*.o
 filter_lib=*.a
 filter_lkr=*.gld
+[CAT_SUBFOLDERS]
+subfolder_src=
+subfolder_inc=
+subfolder_obj=
+subfolder_lib=
+subfolder_lkr=
+[FILE_SUBFOLDERS]
+file_000=.
+file_001=.
+file_002=.
+file_003=.
+file_004=.
+file_005=.
+file_006=.
+file_007=.
+file_008=.
+file_009=.
+file_010=.
+file_011=.
+file_012=.
+file_013=.
+file_014=.
+file_015=.
+file_016=.
+file_017=.
+file_018=.
+file_019=.
+file_020=.
+file_021=.
+file_022=.
+[GENERATED_FILES]
+file_000=no
+file_001=no
+file_002=no
+file_003=no
+file_004=no
+file_005=no
+file_006=no
+file_007=no
+file_008=no
+file_009=no
+file_010=no
+file_011=no
+file_012=no
+file_013=no
+file_014=no
+file_015=no
+file_016=no
+file_017=no
+file_018=no
+file_019=no
+file_020=no
+file_021=no
+file_022=no
 [OTHER_FILES]
 file_000=no
 file_001=no
@@ -38,6 +93,7 @@ file_018=no
 file_019=no
 file_020=no
 file_021=no
+file_022=no
 [FILE_INFO]
 file_000=main.c
 file_001=..\..\source\list.c
@@ -55,21 +111,27 @@ file_012=..\Common\Minimal\comtest.c
 file_013=serial\serial.c
 file_014=timertest.c
 file_015=lcd.c
-file_016=..\..\source\include\semphr.h
-file_017=..\..\source\include\task.h
-file_018=..\..\source\include\croutine.h
-file_019=..\..\source\include\queue.h
-file_020=FreeRTOSConfig.h
-file_021=p24FJ128GA010.gld
+file_016=C:\E\Dev\FreeRTOS\WorkingCopy2\Source\portable\MPLAB\PIC24_dsPIC\portasm_PIC24_dsPIC.S
+file_017=..\..\source\include\semphr.h
+file_018=..\..\source\include\task.h
+file_019=..\..\source\include\croutine.h
+file_020=..\..\source\include\queue.h
+file_021=FreeRTOSConfig.h
+file_022=p24FJ128GA010.gld
 [SUITE_INFO]
 suite_guid={479DDE59-4D56-455E-855E-FFF59A3DB57E}
 suite_state=
 [TOOL_SETTINGS]
 TS{7D9C6ECE-785D-44CB-BA22-17BF2E119622}=-g
-TS{25AC22BD-2378-4FDB-BFB6-7345A15512D3}=-g -Wall -DMPLAB_PIC24_PORT -mlarge-code -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2
+TS{25AC22BD-2378-4FDB-BFB6-7345A15512D3}=-g -Wall -DMPLAB_PIC24_PORT -mlarge-code -O1 -fno-schedule-insns -fno-schedule-insns2
 TS{7DAC9A1D-4C45-45D6-B25A-D117C74E8F5A}=--defsym=__ICD2RAM=1 -Map="$(TARGETBASE).map" -o"$(TARGETBASE).$(TARGETSUFFIX)"
 TS{509E5861-1E2A-483B-8B6B-CA8DB7F2DD78}=
 [INSTRUMENTED_TRACE]
 enable=0
 transport=0
 format=0
+[CUSTOM_BUILD]
+Pre-Build=
+Pre-BuildEnabled=1
+Post-Build=
+Post-BuildEnabled=1
diff --git a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs b/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
index ad85eb9d54..d24f9c117e 100644
--- a/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
+++ b/Demo/PIC24_MPLAB/RTOSDemo_PIC24.mcs
@@ -1,3 +1,7 @@
 [Header]
 MagicCookie={0b13fe8c-dfe0-40eb-8900-6712719559a7}
 Version=1.0
+[TOOL_LOC_STAMPS]
+tool_loc{DE18EB1A-B46B-486B-B96F-A811A635DFAC}=C:\Devtools\Microchip\MPLAB C30\bin\pic30-as.exe
+tool_loc{069BD372-6CA0-40D4-BF2F-5DC806D05083}=C:\Devtools\Microchip\MPLAB C30\bin\pic30-gcc.exe
+tool_loc{433C3D55-811D-409D-A6BF-159CF9355B42}=C:\Devtools\Microchip\MPLAB C30\bin\pic30-ld.exe
diff --git a/Demo/PIC24_MPLAB/serial/serial.c b/Demo/PIC24_MPLAB/serial/serial.c
index cb837eb500..a544b1a91c 100644
--- a/Demo/PIC24_MPLAB/serial/serial.c
+++ b/Demo/PIC24_MPLAB/serial/serial.c
@@ -219,7 +219,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 void __attribute__((__interrupt__, auto_psv)) _U2TXInterrupt( void )
 {
 signed portCHAR cChar;
-portBASE_TYPE xTaskWoken = pdFALSE;
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 
 	/* If the transmit buffer is full we cannot get the next character.
 	Another interrupt will occur the next time there is space so this does
@@ -227,7 +227,7 @@ portBASE_TYPE xTaskWoken = pdFALSE;
 	IFS1bits.U2TXIF = serCLEAR_FLAG;
 	while( !( U2STAbits.UTXBF ) )
 	{
-		if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xTaskWoken ) == pdTRUE )
+		if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )
 		{
 			/* Send the next character queued for Tx. */
 			U2TXREG = cChar;
@@ -240,7 +240,7 @@ portBASE_TYPE xTaskWoken = pdFALSE;
 		}
 	}
 
-	if( xTaskWoken != pdFALSE )
+	if( xHigherPriorityTaskWoken != pdFALSE )
 	{
 		taskYIELD();
 	}