diff --git a/src/dir_import.c b/src/dir_import.c
index a7e93d5435b3732e2e39d1416cc9add7db686bad..872ff6dfb8bca3fa8101eeb47507817a9db19510 100644
--- a/src/dir_import.c
+++ b/src/dir_import.c
@@ -568,10 +568,10 @@ static int process() {
   if(!dir_fatalerr)
     fail = item(0);
 
-  if(!dir_fatalerr)
+  if(!dir_fatalerr && !fail)
     footer();
 
-  if(fclose(ctx->stream) && !dir_fatalerr)
+  if(fclose(ctx->stream) && !dir_fatalerr && !fail)
     dir_seterr("Error closing file: %s", strerror(errno));
   free(ctx);