diff --git a/src/xenia/kernel/objects/xuser_module.cc b/src/xenia/kernel/objects/xuser_module.cc index 9209c2172..037611d37 100644 --- a/src/xenia/kernel/objects/xuser_module.cc +++ b/src/xenia/kernel/objects/xuser_module.cc @@ -112,12 +112,17 @@ X_STATUS XUserModule::LoadFromMemory(const void* addr, const size_t length) { } X_STATUS XUserModule::Unload() { - if (!xex_module()->Unload()) { - return X_STATUS_UNSUCCESSFUL; + if (!xex_module()->loaded()) { + // Quick abort. + return X_STATUS_SUCCESS; } - OnUnload(); - return X_STATUS_SUCCESS; + if (xex_module()->Unload()) { + OnUnload(); + return X_STATUS_SUCCESS; + } + + return X_STATUS_UNSUCCESSFUL; } uint32_t XUserModule::GetProcAddressByOrdinal(uint16_t ordinal) {