diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc index dcbb19e67..2541138a7 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_io.cc @@ -160,7 +160,7 @@ dword_result_t NtReadFile_entry(dword_t file_handle, dword_t event_handle, // though were are completing immediately. // Low bit probably means do not queue to IO ports. if ((uint32_t)apc_routine_ptr & ~1) { - if (apc_context) { + if (apc_context && result == X_STATUS_SUCCESS) { auto thread = XThread::GetCurrentThread(); thread->EnqueueApc(static_cast(apc_routine_ptr) & ~1u, apc_context, io_status_block, 0);