diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 8a19392b6c..d2fb9ec04e 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -2233,7 +2233,13 @@ void __KernelSwitchContext(Thread *target, const char *reason) // Profile on Windows shows this takes time, skip it. if (DEBUG_LEVEL <= MAX_LOGLEVEL) oldName = cur->GetName(); + + if (cur->isRunning()) + cur->nt.status = (cur->nt.status | THREADSTATUS_READY) & ~THREADSTATUS_RUNNING; } + if (target && target->isRunning()) + cur->nt.status = (cur->nt.status | THREADSTATUS_RUNNING) & ~THREADSTATUS_READY; + currentThread = target->GetUID(); __KernelLoadContext(&target->context); DEBUG_LOG(HLE,"Context switched: %s -> %s (%s) (%i - pc: %08x -> %i - pc: %08x)",