diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l
index 5d12512a3bcd6caf3aaaf802e554338f3e8c4285..d1fd0b9edfca5515f0369c9ce8c487d70cdd366b 100644
--- a/gcc/cobol/scan.l
+++ b/gcc/cobol/scan.l
@@ -1737,7 +1737,9 @@ COPY		{
                   ydflval.string = yylval.string = strdup(yytext);
 
                   int token = keyword_tok(null_trim(yylval.string), true);
-                  if( token ) {
+		  auto elem = symbol_field(PROGRAM, 0, yylval.string);
+
+                  if( token && ! elem ) { // not a data item name
                     // If token is an intrinsic, and not in Repository, pretend
                     // it's a name and let the parser sort it out.
                     auto name = intrinsic_function_name(token);