Program: 157856
Project: 157856
Buggy source:
@Override public boolean askToActivateAlternativeCosts(Ability ability,Game game){
  if (ability.getAbilityType() == AbilityType.SPELL) {
    Player player=game.getPlayer(controllerId);
    Spell spell=game.getStack().getSpell(ability.getId());
    if (player != null && spell != null) {
      this.resetMorph();
      spell.setFaceDown(true,game);
      if (alternateCosts.canPay(ability,sourceId,controllerId,game)) {
        if (player.chooseUse(Outcome.Benefit,"String_Node_Str" + getCosts().getText() + "String_Node_Str",ability,game)) {
          activateMorph(game);
          ability.getManaCostsToPay().clear();
          ability.getCosts().clear();
          for (Iterator it=this.alternateCosts.iterator(); it.hasNext(); ) {
            Cost cost=(Cost)it.next();
            if (cost instanceof ManaCost) {
              ability.getManaCostsToPay().add((ManaCost)cost.copy());
            }
 else {
              ability.getCosts().add(cost.copy());
            }
          }
          ObjectColor spellColor=spell.getColor(game);
          spellColor.setBlack(false);
          spellColor.setRed(false);
          spellColor.setGreen(false);
          spellColor.setWhite(false);
          spellColor.setBlue(false);
        }
 else {
          spell.setFaceDown(false,game);
        }
      }
    }
  }
  if (ability.getAbilityType() == AbilityType.PLAY_LAND) {
    Player player=game.getPlayer(controllerId);
    if (player != null) {
      this.resetMorph();
      if (alternateCosts.canPay(ability,sourceId,controllerId,game)) {
        if (player.chooseUse(Outcome.Benefit,"String_Node_Str" + getCosts().getText() + "String_Node_Str",ability,game)) {
          activateMorph(game);
          ability.getManaCostsToPay().clear();
          ability.getCosts().clear();
          for (Iterator it=this.alternateCosts.iterator(); it.hasNext(); ) {
            Cost cost=(Cost)it.next();
            if (cost instanceof ManaCost) {
              ability.getManaCostsToPay().add((ManaCost)cost.copy());
            }
 else {
              ability.getCosts().add(cost.copy());
            }
          }
        }
      }
    }
  }
  return isActivated(ability,game);
}

Fixed version (ground truth):
@Override public boolean askToActivateAlternativeCosts(Ability ability,Game game){
  if (ability.getAbilityType() == AbilityType.SPELL) {
    Player player=game.getPlayer(controllerId);
    Spell spell=game.getStack().getSpell(ability.getId());
    if (player != null && spell != null) {
      this.resetMorph();
      spell.setFaceDown(true,game);
      if (alternateCosts.canPay(ability,sourceId,controllerId,game)) {
        if (player.chooseUse(Outcome.Benefit,"String_Node_Str" + getCosts().getText() + "String_Node_Str",ability,game)) {
          activateMorph(game);
          ability.getManaCostsToPay().clear();
          ability.getCosts().clear();
          for (Iterator it=this.alternateCosts.iterator(); it.hasNext(); ) {
            Cost cost=(Cost)it.next();
            if (cost instanceof ManaCost) {
              ability.getManaCostsToPay().add((ManaCost)cost.copy());
            }
 else {
              ability.getCosts().add(cost.copy());
            }
          }
          ObjectColor spellColor=spell.getColor(game);
          spellColor.setBlack(false);
          spellColor.setRed(false);
          spellColor.setGreen(false);
          spellColor.setWhite(false);
          spellColor.setBlue(false);
          spell.getSubtype(game).clear();
        }
 else {
          spell.setFaceDown(false,game);
        }
      }
    }
  }
  if (ability.getAbilityType() == AbilityType.PLAY_LAND) {
    Player player=game.getPlayer(controllerId);
    if (player != null) {
      this.resetMorph();
      if (alternateCosts.canPay(ability,sourceId,controllerId,game)) {
        if (player.chooseUse(Outcome.Benefit,"String_Node_Str" + getCosts().getText() + "String_Node_Str",ability,game)) {
          activateMorph(game);
          ability.getManaCostsToPay().clear();
          ability.getCosts().clear();
          for (Iterator it=this.alternateCosts.iterator(); it.hasNext(); ) {
            Cost cost=(Cost)it.next();
            if (cost instanceof ManaCost) {
              ability.getManaCostsToPay().add((ManaCost)cost.copy());
            }
 else {
              ability.getCosts().add(cost.copy());
            }
          }
        }
      }
    }
  }
  return isActivated(ability,game);
}