diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs index 1be505e439..6b88687cc0 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs @@ -190,10 +190,9 @@ namespace BizHawk.Client.EmuHawk )] public void DestroyAll() { - foreach (var form in _luaForms) + for (var i = _luaForms.Count - 1; i >= 0; i--) { - form.Close(); - _luaForms.Remove(form); + _luaForms.ElementAt(i).Close(); } } diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs index d282147435..ab48b62381 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs @@ -136,6 +136,7 @@ namespace BizHawk.Client.EmuHawk public void Close() { + FormsLibrary.DestroyAll(); _lua = new Lua(); GuiLibrary.Dispose(); }