diff --git a/Mage/src/mage/abilities/effects/common/continious/CommanderReplacementEffect.java b/Mage/src/mage/abilities/effects/common/continious/CommanderReplacementEffect.java
index a60c58d415..a5e4c12884 100644
--- a/Mage/src/mage/abilities/effects/common/continious/CommanderReplacementEffect.java
+++ b/Mage/src/mage/abilities/effects/common/continious/CommanderReplacementEffect.java
@@ -52,7 +52,7 @@ import mage.players.Player;
  */
 public class CommanderReplacementEffect extends ReplacementEffectImpl<CommanderReplacementEffect> {
 
-    private UUID commanderId;
+    private final UUID commanderId;
 
     public CommanderReplacementEffect(UUID commanderId) {
         super(Duration.WhileOnBattlefield, Outcome.Benefit);
@@ -63,6 +63,7 @@ public class CommanderReplacementEffect extends ReplacementEffectImpl<CommanderR
 
     public CommanderReplacementEffect(final CommanderReplacementEffect effect) {
         super(effect);
+        this.commanderId = effect.commanderId;
     }
 
     @Override
diff --git a/Mage/src/mage/game/stack/Spell.java b/Mage/src/mage/game/stack/Spell.java
index a55f28f3d2..922a7a17cd 100644
--- a/Mage/src/mage/game/stack/Spell.java
+++ b/Mage/src/mage/game/stack/Spell.java
@@ -184,14 +184,14 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
         } else if (this.getCardType().contains(CardType.ENCHANTMENT) && this.getSubtype().contains("Aura")) {
             if (ability.getTargets().stillLegal(ability, game)) {
                 updateOptionalCosts(0);
-                if (card.putOntoBattlefield(game, Zone.HAND, ability.getId(), controllerId)) {
+                if (card.putOntoBattlefield(game, fromZone, ability.getId(), controllerId)) {
                     return ability.resolve(game);
                 }
                 return false;
             }
             if (this.getCardType().contains(CardType.CREATURE)) { // e.g. Creature with Bestow (rule confirmation yet missing)
                 updateOptionalCosts(0);
-                result = card.putOntoBattlefield(game, Zone.HAND, ability.getId(), controllerId);
+                result = card.putOntoBattlefield(game, fromZone, ability.getId(), controllerId);
                 return result;
             } else {
                 //20091005 - 608.2b
@@ -201,7 +201,7 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
             }
         } else {
             updateOptionalCosts(0);
-            result = card.putOntoBattlefield(game, Zone.HAND, ability.getId(), controllerId);
+            result = card.putOntoBattlefield(game, fromZone, ability.getId(), controllerId);
             return result;
         }
     }