Ganz nebenbei:
Zitat:
if Assigned(fReceived) Then fReceived.Free;
ist faktisch dasselbe wie
fReceived.Free;
Man soll ja eben deshalb Free statt Destroy verwenden, weil Free intern die eigene Referenz prüft, da muss man das ja nicht außerhalb noch einmal machen.