anchor.diff:      Image_Message[I].Hide;
       Image_Message[I].HighlightOnMouseOver := True;
       Image_Message[I].Tag := I;
  -    Image_Message[I].OnClick := Message_Click;
  +    Image_Message[I].OnClickShift := Message_Click;
     end;
   end;
   
  
positive.code:     Button_MessageDelete := TKMButton.Create(Panel_Message, 490, 104, 100, 24, gResTexts[TX_MSG_DELETE], bsGame);
      Button_MessageDelete.Font := fntAntiqua;
      Button_MessageDelete.Hint := gResTexts[TX_MSG_DELETE_HINT];
      Button_MessageDelete.OnClick := Message_Delete;
      Button_MessageDelete.MakesSound := False; // Don't play default Click as these buttons use sfxMessageClose
  
      Image_MessageClose := TKMImage.Create(Panel_Message, 600 - 76, 24, 32, 32, 52);
  
negative.code: 
  
  // Click on the same message again closes it
  procedure TKMGamePlayInterface.Message_Click(Sender: TObject; Shift: TShiftState);
  begin
    if ssLeft in Shift then
    begin
      if TKMImage(Sender).Tag <> fShownMessage then
        Message_Show(TKMImage(Sender).Tag)
      else
        Message_Close(Sender);
    end
    else
    begin
      Message_Delete(TKMImage(Sender).Tag);
    end;
  end;
  
  
  