diff --git a/file.c b/file.c
index 02c563a957a7c9deabafd5b3a276841cb0aac8b7..034fe1fb08c8e758eb7767c50bccfb78be87ead6 100755
--- a/file.c
+++ b/file.c
@@ -683,7 +683,7 @@ int ast_closestream(struct ast_filestream *f)
 			snprintf(cmd,size,"/bin/mv -f %s %s",f->filename,f->realfilename);
 			ast_safe_system(cmd);
 	}
-	f->fmt->close(f);
+
 	if (f->filename) {
 		free(f->filename);
 		f->filename = NULL;
@@ -692,7 +692,7 @@ int ast_closestream(struct ast_filestream *f)
 		free(f->realfilename);
 		f->realfilename = NULL;
 	}
-
+	f->fmt->close(f);
 	return 0;
 }