diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 322c41a9505e42f729b99964a35b37ec91fad544..9f5f25bfd4644eb42c1a5a6a0558ed5bb7665e45 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
  *	by PostgreSQL
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.329 2003/05/08 22:19:56 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.330 2003/05/17 15:53:12 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1173,8 +1173,10 @@ dumpClasses(const TableInfo *tblinfo, const int numTables, Archive *fout,
 				/* Dump/restore using COPY */
 				dumpFn = dumpClasses_nodumpData;
 				resetPQExpBuffer(copyBuf);
-				appendPQExpBuffer(copyBuf, "COPY %s %s %sFROM stdin;\n",
-								  fmtId(tblinfo[i].relname),
+				/* must use 2 steps here 'cause fmtId is nonreentrant */
+				appendPQExpBuffer(copyBuf, "COPY %s ",
+								  fmtId(tblinfo[i].relname));
+				appendPQExpBuffer(copyBuf, "%s %sFROM stdin;\n",
 								  fmtCopyColumnList(&(tblinfo[i])),
 					   (oids && tblinfo[i].hasoids) ? "WITH OIDS " : "");
 				copyStmt = copyBuf->data;