diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S b/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
new file mode 100644
index 0000000000..de6e15102f
--- /dev/null
+++ b/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
@@ -0,0 +1,100 @@
+/*
+	FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.
+
+	This file is part of the FreeRTOS.org distribution.
+
+	FreeRTOS.org is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	FreeRTOS.org is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with FreeRTOS.org; if not, write to the Free Software
+	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+	A special exception to the GPL can be applied should you wish to distribute
+	a combined work that includes FreeRTOS.org, without being obliged to provide
+	the source code for any proprietary components.  See the licensing section 
+	of http://www.FreeRTOS.org for full details of how and when the exception
+	can be applied.
+
+    ***************************************************************************
+    ***************************************************************************
+    *                                                                         *
+    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
+    * and even write all or part of your application on your behalf.          *
+    * See http://www.OpenRTOS.com for details of the services we provide to   *
+    * expedite your project.                                                  *
+    *                                                                         *
+    ***************************************************************************
+    ***************************************************************************
+
+	Please ensure to read the configuration and relevant port sections of the
+	online documentation.
+
+	http://www.FreeRTOS.org - Documentation, latest information, license and 
+	contact details.
+
+	http://www.SafeRTOS.com - A version that is certified for use in safety 
+	critical systems.
+
+	http://www.OpenRTOS.com - Commercial support, development, porting, 
+	licensing and training services.
+*/
+
+        .global _vPortYield
+		.extern _vTaskSwitchContext
+		.extern uxCriticalNesting
+
+_vPortYield:
+
+		PUSH	SR						/* Save the SR used by the task.... */
+		PUSH	W0						/* ....then disable interrupts. */
+		MOV		#32, W0
+		MOV		W0, SR
+		PUSH	W1						/* Save registers to the stack. */
+		PUSH.D	W2
+		PUSH.D	W4
+		PUSH.D	W6
+		PUSH.D 	W8
+		PUSH.D 	W10
+		PUSH.D	W12
+		PUSH	W14
+		PUSH	RCOUNT
+		PUSH	TBLPAG
+																						
+		PUSH	CORCON
+		PUSH	PSVPAG
+		MOV		_uxCriticalNesting, W0		/* Save the critical nesting counter for the task. */
+		PUSH	W0
+		MOV		_pxCurrentTCB, W0			/* Save the new top of stack into the TCB. */
+		MOV		W15, [W0]
+
+		call 	_vTaskSwitchContext
+
+		MOV		_pxCurrentTCB, W0			/* Restore the stack pointer for the task. */
+		MOV		[W0], W15
+		POP		W0							/* Restore the critical nesting counter for the task. */
+		MOV		W0, _uxCriticalNesting
+		POP		PSVPAG
+		POP		CORCON
+		POP		TBLPAG
+		POP		RCOUNT						/* Restore the registers from the stack. */
+		POP		W14
+		POP.D	W12
+		POP.D	W10
+		POP.D	W8
+		POP.D	W6
+		POP.D	W4
+		POP.D	W2
+		POP.D	W0
+		POP		SR
+
+        return
+
+        .end
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24_dsPIC.S b/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
similarity index 86%
rename from Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24_dsPIC.S
rename to Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
index 2354f0018e..0bcfc0ac35 100644
--- a/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24_dsPIC.S
+++ b/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
@@ -67,20 +67,17 @@ _vPortYield:
 		PUSH	W14
 		PUSH	RCOUNT
 		PUSH	TBLPAG
-		
-		#ifdef MPLAB_DSPIC_PORT
-			PUSH	ACCAL
-			PUSH	ACCAH
-			PUSH	ACCAU
-			PUSH	ACCBL
-			PUSH	ACCBH
-			PUSH	ACCBU
-			PUSH	DCOUNT
-			PUSH	DOSTARTL
-			PUSH	DOSTARTH
-			PUSH	DOENDL
-			PUSH	DOENDH
-		#endif
+		PUSH	ACCAL
+		PUSH	ACCAH
+		PUSH	ACCAU
+		PUSH	ACCBL
+		PUSH	ACCBH
+		PUSH	ACCBU
+		PUSH	DCOUNT
+		PUSH	DOSTARTL
+		PUSH	DOSTARTH
+		PUSH	DOENDL
+		PUSH	DOENDH
 		
 																						
 		PUSH	CORCON
@@ -98,21 +95,17 @@ _vPortYield:
 		MOV		W0, _uxCriticalNesting
 		POP		PSVPAG
 		POP		CORCON
-
-		#ifdef MPLAB_DSPIC_PORT
-			POP		DOENDH
-			POP		DOENDL
-			POP		DOSTARTH
-			POP		DOSTARTL
-			POP		DCOUNT
-			POP		ACCBU
-			POP		ACCBH
-			POP		ACCBL
-			POP		ACCAU
-			POP		ACCAH
-			POP		ACCAL
-		#endif
-
+		POP		DOENDH
+		POP		DOENDL
+		POP		DOSTARTH
+		POP		DOSTARTL
+		POP		DCOUNT
+		POP		ACCBU
+		POP		ACCBH
+		POP		ACCBL
+		POP		ACCAU
+		POP		ACCAH
+		POP		ACCAL
 		POP		TBLPAG
 		POP		RCOUNT						/* Restore the registers from the stack. */
 		POP		W14