diff --git a/OpenRA.Mods.RA/Buildings/ClonesProducedUnits.cs b/OpenRA.Mods.RA/Buildings/ClonesProducedUnits.cs index f2caec1fce..6ba3647341 100644 --- a/OpenRA.Mods.RA/Buildings/ClonesProducedUnits.cs +++ b/OpenRA.Mods.RA/Buildings/ClonesProducedUnits.cs @@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA public void UnitProducedByOther(Actor self, Actor producer, Actor produced) { // No recursive cloning! - if (producer.HasTrait()) + if (producer.Owner != self.Owner || producer.HasTrait()) return; var ci = produced.Info.Traits.GetOrDefault(); diff --git a/OpenRA.Mods.RA/Production.cs b/OpenRA.Mods.RA/Production.cs index e460773c50..75ce88b514 100755 --- a/OpenRA.Mods.RA/Production.cs +++ b/OpenRA.Mods.RA/Production.cs @@ -98,9 +98,7 @@ namespace OpenRA.Mods.RA foreach (var t in self.TraitsImplementing()) t.UnitProduced(self, newUnit, exit); - var notifyOthers = self.World.ActorsWithTrait() - .Where(a => a.Actor.Owner == self.Owner); - + var notifyOthers = self.World.ActorsWithTrait(); foreach (var notify in notifyOthers) notify.Trait.UnitProducedByOther(notify.Actor, self, newUnit);