diff --git a/Mage.Sets/src/mage/sets/newphyrexia/KarnLiberated.java b/Mage.Sets/src/mage/sets/newphyrexia/KarnLiberated.java index 50a8851d98b..490a16eb679 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/KarnLiberated.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/KarnLiberated.java @@ -133,22 +133,24 @@ class KarnLiberatedEffect extends OneShotEffect { game.getState().addCard(card); } for (Player player : game.getPlayers().values()) { - player.getGraveyard().clear(); - player.getHand().clear(); - player.getLibrary().clear(); - for (Card card : game.getCards()) { - if (card.getOwnerId().equals(player.getId()) && !card.isCopy() // no copies - && !player.getSideboard().contains(card.getId()) - && !cards.contains(card)) { // not the exiled cards - if (card.getId().equals(player.getCommanderId())) { - game.addCommander(new Commander(card)); - game.setZone(card.getId(), Zone.COMMAND); - } else { - player.getLibrary().putOnTop(card, game); + if (player.isInGame()) { // only players alive are in the restarted game + player.getGraveyard().clear(); + player.getHand().clear(); + player.getLibrary().clear(); + for (Card card : game.getCards()) { + if (card.getOwnerId().equals(player.getId()) && !card.isCopy() // no copies + && !player.getSideboard().contains(card.getId()) + && !cards.contains(card)) { // not the exiled cards + if (card.getId().equals(player.getCommanderId())) { + game.addCommander(new Commander(card)); + game.setZone(card.getId(), Zone.COMMAND); + } else { + player.getLibrary().putOnTop(card, game); + } } } + player.init(game); } - player.init(game); } for (Card card : cards) { game.getState().setZone(card.getId(), Zone.EXILED);