diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index dd2a03f1614c55fdb8e4a02d8354b4b279f29bcc..dcd53864d9283135314cd6119f8cfeb5e8bc67d7 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -3309,10 +3309,8 @@ parser_enter_file(const char *filename)
     {
     SHOW_PARSE_HEADER
     char ach[32];
-    sprintf(ach, " level:%d", file_level);
+    sprintf(ach, " entering level:%d %s", file_level+1, filename);
     SHOW_PARSE_TEXT(ach);
-    SHOW_PARSE_TEXT(" ");
-    SHOW_PARSE_TEXT(filename);
     SHOW_PARSE_END
     }
 
@@ -3342,11 +3340,13 @@ parser_enter_file(const char *filename)
     // Build a translation_unit_decl:
     gg_build_translation_unit(filename);
     create_our_type_nodes();
-    // Can't trace here, because we haven't yet entered a function
+    // Can't trace here, because we haven't yet entered a function, so there is
+    // no statement block to which we can add statements.
     }
   else
     {
-    // We can trace here, if we want to.
+    // We can trace here because this is a nested file, which means a statement
+    // block exists.
     TRACE1
       {
       TRACE1_HEADER
@@ -3420,12 +3420,11 @@ void
 parser_leave_file()
   {
   Analyze();
-  file_level -= 1;
   SHOW_PARSE
     {
     SHOW_PARSE_HEADER
     char ach[256];
-    sprintf(ach, "leaving level:%d", file_level);
+    sprintf(ach, "leaving level:%d %s", file_level, current_filename.back().c_str());
     SHOW_PARSE_TEXT(ach)
     SHOW_PARSE_END
     }
@@ -3439,6 +3438,7 @@ parser_leave_file()
       TRACE1_END
       }
     }
+  file_level -= 1;
   current_filename.pop_back();
   }