--- a/fsl_os_abstraction_free_rtos.c
+++ b/fsl_os_abstraction_free_rtos.c
@@ -344,6 +344,12 @@ osaStatus_t OSA_SemaphoreWait(osaSemaphoreId_t semId, uint32_t millisec)
 {
 #if osNumberOfSemaphores
   uint32_t timeoutTicks;
+
+  if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+  {
+      return osaStatus_Success;
+  }
+
   if(semId == NULL)
   {
     return osaStatus_Error;
@@ -388,6 +394,12 @@ osaStatus_t OSA_SemaphorePost(osaSemaphoreId_t semId)
 {
 #if osNumberOfSemaphores
   osaStatus_t status = osaStatus_Error;
+
+  if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+  {
+      return osaStatus_Success;
+  }
+
   if(semId)
   {
     semaphore_t sem = (semaphore_t)semId;
@@ -461,6 +473,12 @@ osaStatus_t OSA_MutexLock(osaMutexId_t mutexId, uint32_t millisec)
 #if osNumberOfMutexes
     uint32_t timeoutTicks;
     mutex_t mutex = (mutex_t)mutexId;
+
+    if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+    {
+        return osaStatus_Success;
+    }
+
     if(mutexId == NULL)
     {
      return osaStatus_Error;
@@ -506,6 +524,12 @@ osaStatus_t OSA_MutexUnlock(osaMutexId_t mutexId)
 {
 #if osNumberOfMutexes
   mutex_t mutex = (mutex_t)mutexId;
+
+  if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+  {
+      return osaStatus_Success;
+  }
+
   if(mutexId == NULL)
   {
     return osaStatus_Error;
