En principio, lo correcto sería:
Código Delphi
[-]
qry4.Close;
FreeAndnil(qry4);
Aunque me gustaría ver como creas el query.
Si lo haces con qry4 := Tquery.Create(nil) (ojo al parámetro nil) o bien la creas en tiempo de diseño, no deberías tener problemas.
Puede que no sea por la destrucción de ese query, sino por efectos colaterales que ésta produzca. Para que te hagas una idea de lo que quiero decir: puede que en el AfterClose de esa query, intentes abrirla de nuevo y por tanto jamás se cerrará por completo, o incluso estás abriendo otra consulta, form o similar en ese evento o uno parecido.
Lamento no tener una respuesta directa. Espero que te dé algunos indicios para conseguir solucionar el problema.
Saludos