diff --git a/gcc/cobol/UAT/testsuite.src/fundamental.at b/gcc/cobol/UAT/testsuite.src/fundamental.at
index da67cdaf634888f5ef85f94a267702cec1935ed1..4d8bbcbd989202ec9015fddc38f697abecfea968 100644
--- a/gcc/cobol/UAT/testsuite.src/fundamental.at
+++ b/gcc/cobol/UAT/testsuite.src/fundamental.at
@@ -60,7 +60,7 @@ AT_DATA([prog.cob], [
        77 this-should-fail_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                            PIC 9.
        PROCEDURE DIVISION.
-           DISPLAY "Gratuitous procedure division statement."
+           DISPLAY "Gratuitous procedure division statement.".
        END PROGRAM prog.
 ])
 AT_CHECK([$COMPILE prog.cob], [1], [], [prog.cob:7: syntax error: name truncated to 'this-should-work_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' (max 63 characters) at 'this-should-work_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
diff --git a/gcc/cobol/UAT/testsuite.src/syn_misc.at b/gcc/cobol/UAT/testsuite.src/syn_misc.at
index 0d52e21193483e0a7a8fcad0e04423a5ba6d08bd..7a8956d18495e1c46bbfaa2eebba67c04c0f2fe6 100644
--- a/gcc/cobol/UAT/testsuite.src/syn_misc.at
+++ b/gcc/cobol/UAT/testsuite.src/syn_misc.at
@@ -910,7 +910,7 @@ LINKAGE SECTION.
 PROCEDURE DIVISION USING var1 RETURNING var2.
     DISPLAY "      I am COBOL routine_128_cobol".
     DISPLAY var1
-    MOVE var1 TO var2
+    MOVE var1 TO var2.
     END PROGRAM routine_c.
 ])
 AT_CHECK([$COMPILE prog.cob], [1], [],
@@ -919,6 +919,7 @@ prog.cob:5: error: no valid VALUE supplied
 prog.cob:6: syntax error
 prog.cob:6: error: no valid VALUE supplied
 prog.cob:7: 4 errors in DATA DIVISION, compilation ceases at 'PROCEDURE DIVISION'
+prog.cob:11: END PROGRAM 'routine_c' does not match PROGRAM-ID 'routine_128_cobol'
 cobol1: error: failed compiling prog.cob
 ])
 AT_CLEANUP
diff --git a/gcc/cobol/UAT/testsuite.src/syn_move.at b/gcc/cobol/UAT/testsuite.src/syn_move.at
index ac3ee79714872797dafeefe33d1fdb6dc201309f..b52b5db6df982ad717a531bd0031e5e6831e91f8 100644
--- a/gcc/cobol/UAT/testsuite.src/syn_move.at
+++ b/gcc/cobol/UAT/testsuite.src/syn_move.at
@@ -949,6 +949,8 @@ AT_DATA([prog.cob], [
 AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
 [prog.cob:8: error: line 6: 01 INVALID-ITEM requires PICTURE at 'PROCEDURE        DIVISION'
 prog.cob:8: 1 errors in DATA DIVISION, compilation ceases at 'PROCEDURE        DIVISION'
+prog.cob:9: cannot MOVE '_literaln_1' (FldLiteralN) to 'INVALID-ITEM' (Fld)
+prog.cob:10: error: cannot MOVE SPACE to numeric receiving field I
 cobol1: error: failed compiling prog.cob
 ])
 
diff --git a/gcc/cobol/symbols.cc b/gcc/cobol/symbols.cc
index ba7bf0ef47e9362eac96f96fe7b09e2eb297c12d..c2a46c96b25393462ba0e03a51a735566c77d424 100644
--- a/gcc/cobol/symbols.cc
+++ b/gcc/cobol/symbols.cc
@@ -1994,32 +1994,6 @@ public:
   }
 };
 
-/*
- * When a symbol is added, look for a forward reference, and copy the
- * relevant bits.  Normal searches don't look for forward declarations.
- */
-static void
-symbol_field_forward_set( size_t program, symbol_elem_t *elem )
-{
-  size_t nelem = symbols.nelem;
-  cbl_field_t *field = cbl_field_of(elem);
-
-  struct symbol_elem_t *e, key = { SymField, program, { .field = *field } };
-  cbl_field_of(&key)->type = FldForward;
-
-  e = static_cast<struct symbol_elem_t *>(lfind( &key, symbols.elems,
-						 &nelem, sizeof(key),
-						 symbol_elem_cmp ) );
-  if( e ) {
-    auto f = cbl_field_of(e);
-    if( field->name == field->data.initial ) {
-      f->data.initial = f->name;
-    }
-    assert(field->var_decl_node == NULL);
-    field->var_decl_node = f->var_decl_node;
-  }
-}
-
 static symbol_elem_t
 add_token( symbol_elem_t sym ) {
   assert(sym.type == SymSpecial);
@@ -2388,8 +2362,6 @@ symbol_field_add( size_t program, struct cbl_field_t *field )
   *p = key;
   symbols.nelem++;
 
-  symbol_field_forward_set(program, p);
-
   return p;
 }