I think "Done" variable has no effect, am I right?
procedure TForm1.InboxModal(Sender: TObject; var Done: boolean);
begin
//Done := True;
Application.OnIdle := FOldOnIdle;
FOldOnIdle := nil;
if not Assigned(InputBoxForm) then begin
Application.CreateForm(TInputBoxForm, InputBoxForm);
inputboxform.ShowModal;
FreeAndNil(InputBoxForm);
end;
end;