diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index a783ae996b..c6ab762bcc 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -464,6 +464,10 @@ public: ~Thread() { + // Callbacks are automatically deleted when their owning thread is deleted. + for (auto it = callbacks.begin(), end = callbacks.end(); it != end; ++it) + kernelObjects.Destroy(*it); + if (pushedStacks.size() != 0) { WARN_LOG_REPORT(SCEKERNEL, "Thread ended within an extended stack");