diff --git a/Mage/src/main/java/mage/cards/CardImpl.java b/Mage/src/main/java/mage/cards/CardImpl.java index 8beaabca2b..d4a1870121 100644 --- a/Mage/src/main/java/mage/cards/CardImpl.java +++ b/Mage/src/main/java/mage/cards/CardImpl.java @@ -453,6 +453,9 @@ public abstract class CardImpl extends MageObjectImpl implements Card { } else if (game.getPlayer(ownerId).getSideboard().contains(this.getId())) { game.getPlayer(ownerId).getSideboard().remove(this.getId()); removed = true; + } else if (game.getPhase() == null) { + // E.g. Commander of commander game + removed = true; } break; case BATTLEFIELD: // for sacrificing permanents or putting to library @@ -465,7 +468,9 @@ public abstract class CardImpl extends MageObjectImpl implements Card { break; } if (removed) { - game.rememberLKI(lkiObject != null ? lkiObject.getId() : objectId, fromZone, lkiObject != null ? lkiObject : this); + if (!fromZone.equals(Zone.OUTSIDE)) { + game.rememberLKI(lkiObject != null ? lkiObject.getId() : objectId, fromZone, lkiObject != null ? lkiObject : this); + } } else { logger.warn("Couldn't find card in fromZone, card=" + getIdName() + ", fromZone=" + fromZone); } diff --git a/Mage/src/main/java/mage/game/ZonesHandler.java b/Mage/src/main/java/mage/game/ZonesHandler.java index 6a53736d4a..a57df07fac 100644 --- a/Mage/src/main/java/mage/game/ZonesHandler.java +++ b/Mage/src/main/java/mage/game/ZonesHandler.java @@ -59,7 +59,9 @@ public class ZonesHandler { } for (ZoneChangeInfo zoneChangeInfo : zoneChangeInfos) { placeInDestinationZone(zoneChangeInfo, game); - game.addSimultaneousEvent(zoneChangeInfo.event); + if (game.getPhase() != null) { // moving cards to zones before game started does not need events + game.addSimultaneousEvent(zoneChangeInfo.event); + } } return zoneChangeInfos; }