Statt Free würde ich Release empfehlen, um alle offenen Ereignisse an das Form abarbeiten zu lassen
Delphi-Quellcode:
Form2 := TForm2.Create(Self);
try
Form2.ShowModal;
finally
Form2.Release;
Form2 := nil;
end;
Wobei Form2 := nil keine Sinn ergibt, wenn Form2 lokal deklariert ist.