diff --git a/main/file.c b/main/file.c
index c0bc758b31994ac6fe03eb29a6539b32e427167e..9729431afc9055233e3c4e89903af56cacd9bbc5 100644
--- a/main/file.c
+++ b/main/file.c
@@ -318,7 +318,8 @@ static void filestream_destructor(void *arg)
 		free(f->realfilename);
 	if (f->fmt->close)
 		f->fmt->close(f);
-	fclose(f->f);
+	if (f->f)
+		fclose(f->f);
 	if (f->vfs)
 		ast_closestream(f->vfs);
 	if (f->orig_chan_name)