Mir ist noch folgendes aufgefallen:
Delphi-Quellcode:
procedure TKernel.freeFunktionskette(address:PFunktionsglied);
begin
if assigned(address) then
begin
if not (address^.danach=nil) then Funktionsketteabarbeiten(address^.danach);
dispose(address);
end;
end;
Solltest du nicht in dieser Funktion nicht freeFunktionskette(address^.danach); anstatt Funktionsketteabarbeiten(address^.danach); aufrufen?
Der Fehler tritt zwar bei der Freigabe der msglist auf, aber der Fehler kann durch anderen Code ausgelöst werden, der den Speicher von der msgList zerschiesst. Daher auch sowas wie hier aufgezeigt beachten und nachschauen. Ansonsten empfehle ich dir mal fastmm4 einzubinden und mal nachzuschauen, ob er dir nicht schon vorher Fehler meldet.