diff --git a/gcc/cobol/parse_ante.h b/gcc/cobol/parse_ante.h
index e1deeb6db0f1b5bb5b58c49b0f8693f917a4fff2..c798c928b308a6b21281561421c9506d4b1e5080 100644
--- a/gcc/cobol/parse_ante.h
+++ b/gcc/cobol/parse_ante.h
@@ -1837,6 +1837,7 @@ new_tempnumeric(void) { return new_temporary(FldNumericBin5); }
 static inline cbl_field_t *
 new_tempnumeric_float(void) { return new_temporary(FldFloat); }
 
+#if 1
 static inline cbl_field_t *
 new_temporary_clone( const cbl_field_t *orig) {
   cbl_field_type_t type = is_literal(orig)? FldAlphanumeric : orig->type;
@@ -1853,6 +1854,24 @@ new_temporary_clone( const cbl_field_t *orig) {
   parser_symbol_add(f);
   return f;
 }  
+#else
+static inline cbl_field_t *
+new_temporary_clone( const cbl_field_t *orig) {
+  cbl_field_type_t type = is_literal(orig)? FldAlphanumeric : orig->type;
+  auto f = new_temporary_imply(type);
+  f->data = orig->data;
+  
+  if( orig->type == FldGroup ) {
+    namcpy(f->name, orig->name);
+    f->attr = temporary_e;
+    f->var_decl_node = NULL;
+    f->data_decl_node = NULL;
+  }
+
+  parser_symbol_add(f);
+  return f;
+}  
+#endif
 
 uint32_t
 type_capacity( enum cbl_field_type_t type, uint32_t digits );