diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index a61a45682ff40e6f6607368c672492ea3ca62b20..7cf25698a2160d6a142cef576896e446ca3ef639 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -4568,14 +4568,25 @@ parser_display_internal(tree file_descriptor,
     }
   else
     {
-    refer_fill_source(refer);
-
-    gg_call(VOID,
-            "__gg__display",
-            3,
-            gg_get_address_of(refer.refer_decl_node),
-            file_descriptor,
-            advance ? integer_one_node : integer_zero_node );
+    if( refer_is_clean(refer) )
+      {
+      gg_call(VOID,
+              "__gg__display_clean",
+              3,
+              gg_get_address_of(refer.field->var_decl_node),
+              file_descriptor,
+              advance ? integer_one_node : integer_zero_node );
+      }
+    else
+      {
+      refer_fill_source(refer);
+      gg_call(VOID,
+              "__gg__display",
+              3,
+              gg_get_address_of(refer.refer_decl_node),
+              file_descriptor,
+              advance ? integer_one_node : integer_zero_node );
+      }
     }
   cursor_at_sol = advance;
   }
diff --git a/libgcobol/libgcobol.cc b/libgcobol/libgcobol.cc
index 59dff38e09f3d05c64684e8303d6fc59285d70ca..c4d7d523acc36873965feef7d5343f31a699f56c 100644
--- a/libgcobol/libgcobol.cc
+++ b/libgcobol/libgcobol.cc
@@ -6838,31 +6838,24 @@ __gg__string(   size_t       integers[],
   return overflow;
   }
 
-extern "C"
+static
 void
-__gg__display(  cblc_refer_t *var,
-                int file_descriptor,
-                int advance )
+display_both(cblc_field_t  *field,
+             unsigned char *qual_data,
+             size_t         qual_size,
+             int            flags,
+             int            file_descriptor,
+             int            advance )
   {
   static size_t display_string_size = MINIMUM_ALLOCATION_SIZE;
   static char *display_string = (char *)MALLOC(display_string_size);
 
-  // if( var->qual_data )
-    // {
-    format_for_display_internal(&display_string,
-                                &display_string_size,
-                                var->field,
-                                var->qual_data,
-                                var->qual_size,
-                                !!(var->flags & REFER_T_ADDRESS_OF) );
-    // }
-  // else
-    // {
-    // // This can happen during TRACE1=2 with LOCAL=STORAGE
-    // char achmsg[] = "<NULL>";
-    // strcpy(display_string, achmsg);
-    // display_string_size = strlen(display_string);
-    // }
+  format_for_display_internal(&display_string,
+                              &display_string_size,
+                              field,
+                              qual_data,
+                              qual_size,
+                              !!(flags & REFER_T_ADDRESS_OF) );
 
   // Let's honor the locale of the system, as best we can:
   static size_t converted_size = MINIMUM_ALLOCATION_SIZE;
@@ -6875,7 +6868,7 @@ __gg__display(  cblc_refer_t *var,
                       strlen(converted));
   if(ss == -1)
     {
-    fprintf(stderr, "__gg__display() %s %p\n", var->field->name, var->qual_data);
+    fprintf(stderr, "__gg__display() %s %p\n", field->name, qual_data);
     fprintf(stderr, "__gg__display() %zd\n", converted_size);
     fprintf(stderr, "__gg__display() ");
     for(size_t i=0; i<converted_size; i++)
@@ -6895,6 +6888,34 @@ __gg__display(  cblc_refer_t *var,
     }
   }
 
+extern "C"
+void
+__gg__display(cblc_refer_t *var,
+              int file_descriptor,
+              int advance )
+  {
+  display_both( var->field,
+                var->qual_data,
+                var->qual_size,
+                var->flags,
+                file_descriptor,
+                advance);
+  }
+
+extern "C"
+void
+__gg__display_clean(cblc_field_t *field,
+                    int file_descriptor,
+                    int advance )
+  {
+  display_both( field,
+                field->data,
+                field->capacity,
+                0,
+                file_descriptor,
+                advance);
+  }
+
 extern "C"
 void
 __gg__display_string( int     file_descriptor,