diff --git a/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs b/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs index 50d03a2e74..5212e408d2 100644 --- a/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/LevelUpCrateAction.cs @@ -68,9 +68,10 @@ namespace OpenRA.Mods.RA foreach (var actor in inRange.Append(collector)) { - actor.World.AddFrameEndTask(w => + var recipient = actor; // loop variable in closure hazard + recipient.World.AddFrameEndTask(w => { - var gainsExperience = actor.TraitOrDefault(); + var gainsExperience = recipient.TraitOrDefault(); if (gainsExperience != null) gainsExperience.GiveLevels(((LevelUpCrateActionInfo)info).Levels); });