diff --git a/main/apiplugins/io.sarl.util/src/io/sarl/eventdispatching/BehaviorGuardEvaluatorRegistry.sarl b/main/apiplugins/io.sarl.util/src/io/sarl/eventdispatching/BehaviorGuardEvaluatorRegistry.sarl index b5669ed6d1..ceb192c937 100644 --- a/main/apiplugins/io.sarl.util/src/io/sarl/eventdispatching/BehaviorGuardEvaluatorRegistry.sarl +++ b/main/apiplugins/io.sarl.util/src/io/sarl/eventdispatching/BehaviorGuardEvaluatorRegistry.sarl @@ -617,8 +617,14 @@ class BehaviorGuardEvaluatorRegistry { for (eventType : eventTypes) { var eventSubscribers : Pair<(Event) => Boolean, Set> = this.behaviorGuardEvaluators.get(eventType); if (eventSubscribers != null && eventSubscribers.getValue() != null - && eventSubscribers === listener && (eventSubscribers.getKey() == null || eventSubscribers.getKey().apply(^event))) { - iBehaviorGuardEvaluators.addAll(eventSubscribers.getValue()); + && (eventSubscribers.getKey() == null || eventSubscribers.getKey().apply(^event))) { + //iBehaviorGuardEvaluators.addAll(eventSubscribers.getValue()); + for (evaluator : eventSubscribers.getValue()) { + if(evaluator.target === listener) { + iBehaviorGuardEvaluators.add(evaluator) + } + } + } } } else {