diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index e8b08482fa..83149b4104 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -3563,7 +3563,10 @@ SceUID sceKernelRegisterThreadEventHandler(const char *name, SceUID threadID, u3 return hleReportError(SCEKERNEL, SCE_KERNEL_ERROR_ERROR, "invalid name"); } if (threadID == 0) { - return hleReportError(SCEKERNEL, SCE_KERNEL_ERROR_ILLEGAL_ATTR, "invalid thread id"); + // "atexit"? + if (mask != THREADEVENT_EXIT) { + return hleReportError(SCEKERNEL, SCE_KERNEL_ERROR_ILLEGAL_ATTR, "invalid thread id"); + } } u32 error; if (kernelObjects.Get(threadID, error) == NULL && threadID != SCE_TE_THREADID_ALL_USER) {