anchor.diff:      if aForceUpdate or (fUpdatedLastListId <> MapId) then
       begin
         fUpdatedLastListId := MapId;
  +
  +      ResetExtraInfo;
  +
         fMaps.Lock;
         try
           M := fMaps[MapId];
  
positive.code: 
  procedure TKMMenuSingleMap.MapTypeChanged(Sender: TObject);
  begin
    ListUpdate;
    ListRefresh(True);
    Update;
  
negative.code:     2:  fLastMapCRC := gGameApp.GameSettings.MenuSPTacticMapCRC;
      3:  fLastMapCRC := gGameApp.GameSettings.MenuSPSpecialMapCRC;
    end;
  end;
  
  
  procedure TKMMenuSingleMap.ResetUI;
  begin
    Label_SingleTitle.Caption   := '';
    Memo_SingleDesc.Text        := '';
    DropBox_SingleLoc.ItemIndex := -1;
  
    MinimapView_Single.Hide;
  
    DropBox_SingleLoc.Clear;
    DropBox_SingleColor.Clear;
  
    ResetExtraInfo;
  end;
  
  
  procedure TKMMenuSingleMap.ResetExtraInfo;
  var
    I: Integer;
  begin
    //Clear all so that later we fill only used
    for I := 0 to MAX_UI_GOALS - 1 do
    begin
      Image_SingleVictGoal[I].TexID := 0;
      Label_SingleVictGoal[I].Caption := '';
      Image_SingleVictGoalSt[I].Hide;
      Image_SingleSurvGoal[I].TexID := 0;
      Label_SingleSurvGoal[I].Caption := '';
      Image_SingleSurvGoalSt[I].Hide;
    end;
    for I := 0 to MAX_HANDS - 1 do
    begin
      Image_SingleAllies[I].Hide;
      Image_SingleEnemies[I].Hide;
    end;
    Button_SingleStart.Disable;
  end;
  
  
  procedure TKMMenuSingleMap.UpdateDropBoxes;
  begin
    if DropBox_SingleLoc.ItemIndex <> -1 then
      fSingleLoc := DropBox_SingleLoc.GetSelectedTag
    else
      fSingleLoc := -1;
  
    //Don't allow selecting separator
    if DropBox_SingleColor.ItemIndex = 1 then
      DropBox_SingleColor.ItemIndex := 0;
  
    if InRange(DropBox_SingleColor.ItemIndex, 0, DropBox_SingleColor.List.RowCount - 1) then
      fSingleColor := DropBox_SingleColor.List.Rows[DropBox_SingleColor.ItemIndex].Cells[0].Color;
  end;
  
  
  