anchor.diff:  end;
   
   
  -procedure TKMGamePlayInterface.Message_Delete(Sender: TObject);
  +procedure TKMGamePlayInterface.Message_DeleteClick(Sender: TObject);
   var
     OldMsg: Integer;
   begin
     if fShownMessage = -1 then Exit; // Player pressed DEL with no Msg opened
   
     OldMsg := fShownMessage;
  -
     Message_Close(Sender);
  -  fMessageStack.RemoveStack(OldMsg);
  +  Message_Delete(OldMsg);
  +end;
  +
  +
  +procedure TKMGamePlayInterface.Message_Delete(aIndex: Integer);
  +begin
  +  if aIndex = fShownMessage then
  +    Message_Close(nil);
  +
  +  fMessageStack.RemoveStack(aIndex);
   
     Message_UpdateStack;
     DisplayHint(nil);
  
positive.code:     Image_Message[I].Hide;
      Image_Message[I].HighlightOnMouseOver := True;
      Image_Message[I].Tag := I;
      Image_Message[I].OnClick := Message_Click;
    end;
  end;
  
  
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;
  
  
  