procedure editmessage(i:integer);
var t:text;
    f:file;
    mheader:mheaderrec;
    mixr:msgindexrec;
    s:string;
    brdsig,dfdt1,dfdt2,newmsgptr,totload:longint;
begin
  loadmhead(i,mheader);

  assign(t,'tgtempx.msg'); rewrite(t);
  totload:=0;
  repeat
    blockreadstr2(brdf,s);
    inc(totload,length(s)+2);
    writeln(t,s);
  until (totload>=mheader.msglength);
  close(t);
  getftime(t,dfdt1);

  tedit(allcaps('tgtempx.msg'));
  assign(f,'tgtempx.msg');
  getftime(f,dfdt2);
  close(f);

  if (dfdt1<>dfdt2) then begin
    assign(t,'tgtempx.msg');
    reset(t);
    mheader.msglength:=0;
    repeat
      readln(t,s);
      inc(mheader.msglength,length(s)+2);
    until (eof(t));
    close(f);
    newmsgptr:=filesize(brdf);
    seek(brdf,newmsgptr);
    outmessagetext('tgtempx.msg',mheader,TRUE);
    ensureloaded(i);
    mixr:=mintab[getmixnum(i)];
    mixr.hdrptr:=newmsgptr;
    savemix(mixr,i);
    ensureloaded(i);
  end;
end;
