diff --git a/FreeRTOS/Demo/Common/Minimal/BlockQ.c b/FreeRTOS/Demo/Common/Minimal/BlockQ.c
index a35bf0674c..b9b1adb874 100644
--- a/FreeRTOS/Demo/Common/Minimal/BlockQ.c
+++ b/FreeRTOS/Demo/Common/Minimal/BlockQ.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -136,7 +136,7 @@ const portTickType xBlockTime = ( portTickType ) 1000 / portTICK_RATE_MS;
 const portTickType xDontBlock = ( portTickType ) 0;
 
 	/* Create the first two tasks as described at the top of the file. */
-	
+
 	/* First create the structure used to pass parameters to the consumer tasks. */
 	pxQueueParameters1 = ( xBlockingQueueParameters * ) pvPortMalloc( sizeof( xBlockingQueueParameters ) );
 
@@ -150,7 +150,7 @@ const portTickType xDontBlock = ( portTickType ) 0;
 	/* Pass in the variable that this task is going to increment so we can check it
 	is still running. */
 	pxQueueParameters1->psCheckVariable = &( sBlockingConsumerCount[ 0 ] );
-		
+
 	/* Create the structure used to pass parameters to the producer task. */
 	pxQueueParameters2 = ( xBlockingQueueParameters * ) pvPortMalloc( sizeof( xBlockingQueueParameters ) );
 
@@ -171,7 +171,7 @@ const portTickType xDontBlock = ( portTickType ) 0;
 	xTaskCreate( vBlockingQueueConsumer, ( signed char * ) "QConsB1", blckqSTACK_SIZE, ( void * ) pxQueueParameters1, uxPriority, NULL );
 	xTaskCreate( vBlockingQueueProducer, ( signed char * ) "QProdB2", blckqSTACK_SIZE, ( void * ) pxQueueParameters2, tskIDLE_PRIORITY, NULL );
 
-	
+
 
 	/* Create the second two tasks as described at the top of the file.   This uses
 	the same mechanism but reverses the task priorities. */
@@ -201,7 +201,7 @@ const portTickType xDontBlock = ( portTickType ) 0;
 	pxQueueParameters6 = ( xBlockingQueueParameters * ) pvPortMalloc( sizeof( xBlockingQueueParameters ) );
 	pxQueueParameters6->xQueue = pxQueueParameters5->xQueue;
 	pxQueueParameters6->xBlockTime = xBlockTime;
-	pxQueueParameters6->psCheckVariable = &( sBlockingConsumerCount[ 2 ] );	
+	pxQueueParameters6->psCheckVariable = &( sBlockingConsumerCount[ 2 ] );
 
 	xTaskCreate( vBlockingQueueProducer, ( signed char * ) "QProdB5", blckqSTACK_SIZE, ( void * ) pxQueueParameters5, tskIDLE_PRIORITY, NULL );
 	xTaskCreate( vBlockingQueueConsumer, ( signed char * ) "QConsB6", blckqSTACK_SIZE, ( void * ) pxQueueParameters6, tskIDLE_PRIORITY, NULL );
@@ -217,7 +217,7 @@ short sErrorEverOccurred = pdFALSE;
 	pxQueueParameters = ( xBlockingQueueParameters * ) pvParameters;
 
 	for( ;; )
-	{		
+	{
 		if( xQueueSend( pxQueueParameters->xQueue, ( void * ) &usValue, pxQueueParameters->xBlockTime ) != pdPASS )
 		{
 			sErrorEverOccurred = pdTRUE;
@@ -234,6 +234,10 @@ short sErrorEverOccurred = pdFALSE;
 			/* Increment the variable we are going to post next time round.  The
 			consumer will expect the numbers to	follow in numerical order. */
 			++usValue;
+
+			#if configUSE_PREEMPTION == 0
+				taskYIELD();
+			#endif
 		}
 	}
 }
@@ -248,7 +252,7 @@ short sErrorEverOccurred = pdFALSE;
 	pxQueueParameters = ( xBlockingQueueParameters * ) pvParameters;
 
 	for( ;; )
-	{	
+	{
 		if( xQueueReceive( pxQueueParameters->xQueue, &usData, pxQueueParameters->xBlockTime ) == pdPASS )
 		{
 			if( usData != usExpectedValue )
@@ -261,17 +265,26 @@ short sErrorEverOccurred = pdFALSE;
 			else
 			{
 				/* We have successfully received a message, so increment the
-				variable used to check we are still running. */	
+				variable used to check we are still running. */
 				if( sErrorEverOccurred == pdFALSE )
 				{
 					( *pxQueueParameters->psCheckVariable )++;
 				}
-							
+
 				/* Increment the value we expect to remove from the queue next time
 				round. */
 				++usExpectedValue;
-			}			
-		}		
+			}
+
+			#if configUSE_PREEMPTION == 0
+			{
+				if( pxQueueParameters->xBlockTime == 0 )
+				{
+					taskYIELD();
+				}
+			}
+			#endif
+		}
 	}
 }
 /*-----------------------------------------------------------*/
@@ -286,7 +299,7 @@ portBASE_TYPE xReturn = pdPASS, xTasks;
 	/* Not too worried about mutual exclusion on these variables as they are 16
 	bits and we are only reading them. We also only care to see if they have
 	changed or not.
-	
+
 	Loop through each check variable to and return pdFALSE if any are found not
 	to have changed since the last call. */
 
diff --git a/FreeRTOS/Demo/Common/Minimal/GenQTest.c b/FreeRTOS/Demo/Common/Minimal/GenQTest.c
index c74188334f..ece9376363 100644
--- a/FreeRTOS/Demo/Common/Minimal/GenQTest.c
+++ b/FreeRTOS/Demo/Common/Minimal/GenQTest.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -64,12 +64,12 @@
 */
 
 
-/* 
- * Tests the extra queue functionality introduced in FreeRTOS.org V4.5.0 - 
- * including xQueueSendToFront(), xQueueSendToBack(), xQueuePeek() and 
- * mutex behaviour. 
+/*
+ * Tests the extra queue functionality introduced in FreeRTOS.org V4.5.0 -
+ * including xQueueSendToFront(), xQueueSendToBack(), xQueuePeek() and
+ * mutex behaviour.
  *
- * See the comments above the prvSendFrontAndBackTest() and 
+ * See the comments above the prvSendFrontAndBackTest() and
  * prvLowPriorityMutexTask() prototypes below for more information.
  */
 
@@ -151,10 +151,10 @@ xSemaphoreHandle xMutex;
 	xQueue = xQueueCreate( genqQUEUE_LENGTH, sizeof( unsigned portLONG ) );
 
 	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
-	in use.  The queue registry is provided as a means for kernel aware 
+	in use.  The queue registry is provided as a means for kernel aware
 	debuggers to locate queues and has no purpose if a kernel aware debugger
 	is not being used.  The call to vQueueAddToRegistry() will be removed
-	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is 
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
 	defined to be less than 1. */
 	vQueueAddToRegistry( xQueue, ( signed portCHAR * ) "Gen_Queue_Test" );
 
@@ -167,10 +167,10 @@ xSemaphoreHandle xMutex;
 	xMutex = xSemaphoreCreateMutex();
 
 	/* vQueueAddToRegistry() adds the mutex to the registry, if one is
-	in use.  The registry is provided as a means for kernel aware 
+	in use.  The registry is provided as a means for kernel aware
 	debuggers to locate mutexes and has no purpose if a kernel aware debugger
 	is not being used.  The call to vQueueAddToRegistry() will be removed
-	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is 
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
 	defined to be less than 1. */
 	vQueueAddToRegistry( ( xQueueHandle ) xMutex, ( signed portCHAR * ) "Gen_Queue_Mutex" );
 
@@ -190,7 +190,7 @@ xQueueHandle xQueue;
 
 	#ifdef USE_STDIO
 	void vPrintDisplayMessage( const portCHAR * const * ppcMessageToSend );
-	
+
 		const portCHAR * const pcTaskStartMsg = "Queue SendToFront/SendToBack/Peek test started.\r\n";
 
 		/* Queue a message for printing to say the task has started. */
@@ -312,7 +312,7 @@ xQueueHandle xQueue;
 			{
 				xErrorDetected = pdTRUE;
 			}
-			
+
 
 			/* Now try receiving the data for real.  The value should be the
 			same.  Clobber the value first so we know we really received it. */
@@ -417,7 +417,7 @@ xSemaphoreHandle xMutex = ( xSemaphoreHandle ) pvParameters;
 
 	#ifdef USE_STDIO
 	void vPrintDisplayMessage( const portCHAR * const * ppcMessageToSend );
-	
+
 		const portCHAR * const pcTaskStartMsg = "Mutex with priority inheritance test started.\r\n";
 
 		/* Queue a message for printing to say the task has started. */
@@ -446,6 +446,10 @@ xSemaphoreHandle xMutex = ( xSemaphoreHandle ) pvParameters;
 		mutex, and block when it finds it cannot obtain it. */
 		vTaskResume( xHighPriorityMutexTask );
 
+		#if configUSE_PREEMPTION == 0
+			taskYIELD();
+		#endif
+
 		/* Ensure the task is reporting it priority as blocked and not
 		suspended (as it would have done in versions up to V7.5.3). */
 		#if( INCLUDE_eTaskGetState == 1 )
@@ -490,6 +494,10 @@ xSemaphoreHandle xMutex = ( xSemaphoreHandle ) pvParameters;
 			xErrorDetected = pdTRUE;
 		}
 
+		#if configUSE_PREEMPTION == 0
+			taskYIELD();
+		#endif
+
 		/* Check that the guarded variable did indeed increment... */
 		if( ulGuardedVariable != 1 )
 		{
@@ -512,7 +520,7 @@ xSemaphoreHandle xMutex = ( xSemaphoreHandle ) pvParameters;
 
 		#if configUSE_PREEMPTION == 0
 			taskYIELD();
-		#endif		
+		#endif
 	}
 }
 /*-----------------------------------------------------------*/
@@ -558,7 +566,7 @@ xSemaphoreHandle xMutex = ( xSemaphoreHandle ) pvParameters;
 		if( xSemaphoreGive( xMutex ) != pdPASS )
 		{
 			xErrorDetected = pdTRUE;
-		}		
+		}
 	}
 }
 /*-----------------------------------------------------------*/
@@ -581,7 +589,7 @@ static unsigned portLONG ulLastLoopCounter = 0, ulLastLoopCounter2 = 0;
 	}
 
 	ulLastLoopCounter = ulLoopCounter;
-	ulLastLoopCounter2 = ulLoopCounter2;	
+	ulLastLoopCounter2 = ulLoopCounter2;
 
 	/* Errors detected in the task itself will have latched xErrorDetected
 	to true. */
diff --git a/FreeRTOS/Demo/Common/Minimal/QPeek.c b/FreeRTOS/Demo/Common/Minimal/QPeek.c
index c445d82a0c..6124340221 100644
--- a/FreeRTOS/Demo/Common/Minimal/QPeek.c
+++ b/FreeRTOS/Demo/Common/Minimal/QPeek.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -64,7 +64,7 @@
 */
 
 
-/* 
+/*
  * Tests the behaviour when data is peeked from a queue when there are
  * multiple tasks blocked on the queue.
  */
@@ -124,10 +124,10 @@ xQueueHandle xQueue;
 	xQueue = xQueueCreate( qpeekQUEUE_LENGTH, sizeof( unsigned portLONG ) );
 
 	/* vQueueAddToRegistry() adds the queue to the queue registry, if one is
-	in use.  The queue registry is provided as a means for kernel aware 
+	in use.  The queue registry is provided as a means for kernel aware
 	debuggers to locate queues and has no purpose if a kernel aware debugger
 	is not being used.  The call to vQueueAddToRegistry() will be removed
-	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is 
+	by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is
 	defined to be less than 1. */
 	vQueueAddToRegistry( xQueue, ( signed portCHAR * ) "QPeek_Test_Queue" );
 
@@ -149,7 +149,7 @@ unsigned portLONG ulValue;
 	#ifdef USE_STDIO
 	{
 		void vPrintDisplayMessage( const portCHAR * const * ppcMessageToSend );
-	
+
 		const portCHAR * const pcTaskStartMsg = "Queue peek test started.\r\n";
 
 		/* Queue a message for printing to say the task has started. */
@@ -202,7 +202,7 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
-		/* Now we will block again as the queue is once more empty.  The low 
+		/* Now we will block again as the queue is once more empty.  The low
 		priority task can then execute again. */
 		if( xQueuePeek( xQueue, &ulValue, portMAX_DELAY ) != pdPASS )
 		{
@@ -245,7 +245,7 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
-		vTaskSuspend( NULL );		
+		vTaskSuspend( NULL );
 	}
 }
 /*-----------------------------------------------------------*/
@@ -300,7 +300,7 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
-		vTaskSuspend( NULL );				
+		vTaskSuspend( NULL );
 	}
 }
 /*-----------------------------------------------------------*/
@@ -353,7 +353,7 @@ unsigned portLONG ulValue;
 
 	for( ;; )
 	{
-		/* Write some data to the queue.  This should unblock the highest 
+		/* Write some data to the queue.  This should unblock the highest
 		priority task that is waiting to peek data from the queue. */
 		ulValue = 0x11223344;
 		if( xQueueSendToBack( xQueue, &ulValue, qpeekNO_BLOCK ) != pdPASS )
@@ -363,6 +363,10 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
+		#if configUSE_PREEMPTION == 0
+			taskYIELD();
+		#endif
+
 		/* By the time we get here the data should have been removed from
 		the queue. */
 		if( uxQueueMessagesWaiting( xQueue ) != 0 )
@@ -380,6 +384,10 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
+		#if configUSE_PREEMPTION == 0
+			taskYIELD();
+		#endif
+
 		/* All the other tasks should now have successfully peeked the data.
 		The data is still in the queue so we should be able to receive it. */
 		ulValue = 0;
@@ -393,7 +401,7 @@ unsigned portLONG ulValue;
 		{
 			/* We did not receive the expected value. */
 		}
-		
+
 		/* Lets just delay a while as this is an intensive test as we don't
 		want to starve other tests of processing time. */
 		vTaskDelay( qpeekSHORT_DELAY );
@@ -407,6 +415,10 @@ unsigned portLONG ulValue;
 		vTaskResume( xHighPriorityTask );
 		vTaskResume( xHighestPriorityTask );
 
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
+
 		ulValue = 0xaabbaabb;
 		if( xQueueSendToFront( xQueue, &ulValue, qpeekNO_BLOCK ) != pdPASS )
 		{
@@ -415,6 +427,10 @@ unsigned portLONG ulValue;
 			xErrorDetected = pdTRUE;
 		}
 
+		#if configUSE_PREEMPTION == 0
+			taskYIELD();
+		#endif
+
 		/* This time we should find that the queue is empty.  The high priority
 		task actually removed the data rather than just peeking it. */
 		if( xQueuePeek( xQueue, &ulValue, qpeekNO_BLOCK ) != errQUEUE_EMPTY )
@@ -427,7 +443,7 @@ unsigned portLONG ulValue;
 		and repeat the whole thing.  The medium priority task should not be
 		suspended as it was not able to peek the data in this last case. */
 		vTaskResume( xHighPriorityTask );
-		vTaskResume( xHighestPriorityTask );		
+		vTaskResume( xHighestPriorityTask );
 
 		/* Lets just delay a while as this is an intensive test as we don't
 		want to starve other tests of processing time. */
diff --git a/FreeRTOS/Demo/Common/Minimal/QueueOverwrite.c b/FreeRTOS/Demo/Common/Minimal/QueueOverwrite.c
index bd0f4c0a6d..3ab32ec7a9 100644
--- a/FreeRTOS/Demo/Common/Minimal/QueueOverwrite.c
+++ b/FreeRTOS/Demo/Common/Minimal/QueueOverwrite.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -178,6 +178,10 @@ unsigned long ulValue, ulStatus = pdPASS, x;
 			error. */
 			ulLoopCounter++;
 		}
+
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
 	}
 }
 /*-----------------------------------------------------------*/
@@ -236,7 +240,7 @@ unsigned long ulRx;
 		case 1:
 			/* The queue already holds ulTx1.  Overwrite the value in the queue
 			with ulTx2. */
-			xQueueOverwriteFromISR( xISRQueue, &ulTx2, NULL );			
+			xQueueOverwriteFromISR( xISRQueue, &ulTx2, NULL );
 			break;
 
 		case 2:
diff --git a/FreeRTOS/Demo/Common/Minimal/QueueSet.c b/FreeRTOS/Demo/Common/Minimal/QueueSet.c
index 1b8dec6de5..0ba9526997 100644
--- a/FreeRTOS/Demo/Common/Minimal/QueueSet.c
+++ b/FreeRTOS/Demo/Common/Minimal/QueueSet.c
@@ -319,6 +319,10 @@ xQueueHandle xQueueInUse;
 			xQueueSetTasksStatus = pdFAIL;
 		}
 
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
+
 		ulTaskTxValue++;
 
 		/* If the Tx value has reached the range used by the ISR then set it
diff --git a/FreeRTOS/Demo/Common/Minimal/dynamic.c b/FreeRTOS/Demo/Common/Minimal/dynamic.c
index 1b24ab1ac8..c72f5d3813 100644
--- a/FreeRTOS/Demo/Common/Minimal/dynamic.c
+++ b/FreeRTOS/Demo/Common/Minimal/dynamic.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
@@ -257,6 +257,11 @@ unsigned portBASE_TYPE uxOurPriority;
 			( *pulCounter )++;
 		}
 		vTaskPrioritySet( NULL, uxOurPriority );
+
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
+
 		configASSERT( ( uxTaskPriorityGet( NULL ) == uxOurPriority ) );
 	}
 }
@@ -300,6 +305,10 @@ short sError = pdFALSE;
 			}
 			vTaskResume( xContinuousIncrementHandle );
 
+			#if( configUSE_PREEMPTION == 0 )
+				taskYIELD();
+			#endif
+
 			#if( INCLUDE_eTaskGetState == 1 )
 			{
 				configASSERT( eTaskGetState( xContinuousIncrementHandle ) == eReady );
@@ -344,6 +353,10 @@ short sError = pdFALSE;
 		task has suspended itself with a known value in the counter variable. */
 		vTaskResume( xLimitedIncrementHandle );
 
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
+
 		/* This task should not run again until xLimitedIncrementHandle has
 		suspended itself. */
 		#if( INCLUDE_eTaskGetState == 1 )
@@ -368,6 +381,10 @@ short sError = pdFALSE;
 
 		/* Resume the continuous count task and do it all again. */
 		vTaskResume( xContinuousIncrementHandle );
+
+		#if( configUSE_PREEMPTION == 0 )
+			taskYIELD();
+		#endif
 	}
 }
 /*-----------------------------------------------------------*/
diff --git a/FreeRTOS/Demo/Common/Minimal/recmutex.c b/FreeRTOS/Demo/Common/Minimal/recmutex.c
index 3ddc0d0ee0..16078ef23a 100644
--- a/FreeRTOS/Demo/Common/Minimal/recmutex.c
+++ b/FreeRTOS/Demo/Common/Minimal/recmutex.c
@@ -1,5 +1,5 @@
 /*
-    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd. 
+    FreeRTOS V7.5.3 - Copyright (C) 2013 Real Time Engineers Ltd.
     All rights reserved
 
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.