diff --git a/Dalamud/Game/Internal/Framework.cs b/Dalamud/Game/Internal/Framework.cs index 989278610..cf314ba70 100644 --- a/Dalamud/Game/Internal/Framework.cs +++ b/Dalamud/Game/Internal/Framework.cs @@ -164,11 +164,16 @@ namespace Dalamud.Game.Internal { private IntPtr HandleFrameworkDestroy() { Log.Information("Framework::OnDestroy!"); + + // Store the pointer to the original trampoline location + var originalPtr = Marshal.GetFunctionPointerForDelegate(this.destroyHook.Original); + this.dalamud.Unload(); this.dalamud.WaitForUnloadFinish(); - return this.destroyHook.Original(); + // Return the original trampoline location to cleanly exit + return originalPtr; } } }