diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index 76af929947..4dae0ff259 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -1202,11 +1202,23 @@ public abstract class GameImpl> implements Game, Serializa if (abilities.isEmpty()) { break; } + // triggered abilities that don't use the stack have to be executed first (e.g. Banisher Priest Return exiled creature + for (Iterator it = abilities.iterator(); it.hasNext();) { + TriggeredAbility triggeredAbility = it.next(); + if (!triggeredAbility.isUsesStack()) { + state.removeTriggeredAbility(triggeredAbility); + played |= player.triggerAbility(triggeredAbility, this); + it.remove(); + } + } + if (abilities.isEmpty()) { + break; + } if (abilities.size() == 1) { state.removeTriggeredAbility(abilities.get(0)); played |= player.triggerAbility(abilities.get(0), this); } - else { + else { TriggeredAbility ability = player.chooseTriggeredAbility(abilities, this); if (ability != null) { state.removeTriggeredAbility(ability);