anchor.diff:      // Makes compiler happy
       Id := 0;
   
  +    Count := Min(R2[I - 1], 5);
       // Exception for houses whose wares are layered
       if aHouse in [ht_WeaponSmithy, ht_ArmorSmithy, ht_WeaponWorkshop, ht_ArmorWorkshop] then
       begin
  -      for K := 1 to Min(R2[I - 1], 5) do
  +      for K := 1 to Count do
         begin
           Id := gRes.Houses[aHouse].SupplyOut[I, K] + 1;
           // Need to swap Shields and Armor for the ArmorSmithy
  
positive.code: 
  procedure TRenderPool.AddHouseSupply(aHouse: THouseType; Loc: TKMPoint; const R1, R2: array of Byte; DoImmediateRender: Boolean = False; DoHighlight: Boolean = False; HighlightColor: TColor4 = 0);
  var
    Id, I, K: Integer;
    R: TRXData;
  
    procedure AddHouseSupplySprite(aId: Integer);
  
negative.code:         if (aHouse = ht_ArmorSmithy) and (I in [1,2]) then
            Id := gRes.Houses[aHouse].SupplyOut[3-I, K] + 1;
        end;
      end
      else
        Id := gRes.Houses[aHouse].SupplyOut[I, Count] + 1;
  
      AddHouseSupplySprite(Id);
    end;
  