diff --git a/src/CxbxKrnl/EmuKrnlRtl.cpp b/src/CxbxKrnl/EmuKrnlRtl.cpp index 94a367878..93411908a 100644 --- a/src/CxbxKrnl/EmuKrnlRtl.cpp +++ b/src/CxbxKrnl/EmuKrnlRtl.cpp @@ -1280,7 +1280,10 @@ XBSYSAPI EXPORTNUM(295) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSectionAn LOG_FUNC_ONE_ARG(CriticalSection); RtlLeaveCriticalSection(CriticalSection); - KeLeaveCriticalRegion(); + + if (CriticalSection->RecursionCount == 0) { + KeLeaveCriticalRegion(); + } } // ******************************************************************