diff --git a/OpenRA.Mods.Common/Activities/PickupUnit.cs b/OpenRA.Mods.Common/Activities/PickupUnit.cs index 433574af83..ef64cf4d0a 100644 --- a/OpenRA.Mods.Common/Activities/PickupUnit.cs +++ b/OpenRA.Mods.Common/Activities/PickupUnit.cs @@ -49,6 +49,10 @@ namespace OpenRA.Mods.Common.Activities protected override void OnFirstRun(Actor self) { + // The cargo might have become invalid while we were moving towards it. + if (cargo.IsDead || carryable.IsTraitDisabled || !cargo.AppearsFriendlyTo(self)) + return; + if (carryall.ReserveCarryable(self, cargo)) { // Fly to the target and wait for it to be locked for pickup