anchor.diff:    I: Integer;
   begin
     //ArmorWorkshop is needed to produce Shields before Tannery is made
  -  if (aHouse = ht_ArmorWorkshop)
  -  and not gHands[fOwner].Stats.GetCanBuild(ht_ArmorWorkshop)
  -  and (gHands[fOwner].Stats.GetHouseTotal(ht_Tannery) = 0) then
  -    Append(ht_Tannery);
  +  //Handle in generic way since in custom missions it might apply to other houses
  +  if not gHands[fOwner].Stats.GetCanBuild(aHouse)
  +  and (gHands[fOwner].Stats.GetHouseTotal(gResource.HouseDat[aHouse].ReleasedBy) = 0) then
  +    Append(gResource.HouseDat[aHouse].ReleasedBy);
   
     //If the same house is asked for independently then don't add it again, since f.e. gold and iron
     //might both ask for a coal mine, when only 1 extra is needed.
  
positive.code:     //Current coal consumption
      CoalConsumptionRate := GoldPerMin/2 + SteelPerMin + WeaponsPerMin + ArmorPerMin;
    end;
  
    if CoalProductionRate >= CoalConsumptionRate then
    begin
  
negative.code:     fWarfare.SteelArmor.SteelTheory := Max(0, ArmorPerMin - DeficitSteel);
    end;
  
    IronConsumption := SteelConsumptionRate; //Any not being used for steel is excess
    IronReserve := gHands[fOwner].Stats.GetWareBalance(wt_IronOre) / IronConsumption;
    IronProduction := IronPerMin + Max(IronReserve - 30, 0);
  
    if IronProduction >= IronConsumption then
    begin
  