diff --git a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs index 737271b2f8..cdc7c1cf0b 100644 --- a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs +++ b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs @@ -44,7 +44,13 @@ namespace OpenRA.Mods.RA.Activities { if (target.Health - EngineerCapture.EngineerDamage <= 0) { - target.Owner = self.Owner; + target.World.AddFrameEndTask(w => + { // momentarily remove from world so the ownership queries don't get confused + w.Remove(target); + target.Owner = self.Owner; + w.Add(target); + }); + target.InflictDamage(self, target.Health - EngineerCapture.EngineerDamage, null); } else