Es wird wohl irgendwas vorher freigegeben, bevor es nochmals verwendet wird. Aber wo genau, das wird schwer dir zu sagen.
Verwendest du Threads beim Herunterfahren? Oder rufst du nur bedingt Free() auf? also so:
Delphi-Quellcode:
procedure TMyClass.Destroy();
begin
if ... then
ObjectXYZ.Free();
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)