diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 3acc7d9244e72a656e8e3fd77b895da20d77d9c3..095d9318175af3498eb0b0ea9d0dd6c1f733ad17 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -21,7 +21,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.127 1999/12/27 15:42:43 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.128 1999/12/27 15:45:04 momjian Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -1700,7 +1700,7 @@ getTables(int *numTables, FuncInfo *finfo, int numFuncs)
 				int			tgnargs = atoi(PQgetvalue(res2, i2, i_tgnargs));
 				const char *tgargs = PQgetvalue(res2, i2, i_tgargs);
 				const char *p;
-				char		farg[MAX_QUERY_SIZE];
+				PQExpBuffer	farg = createPQExpBuffer();
 				int			findx;
 
 				for (findx = 0; findx < numFuncs; findx++)
@@ -1786,14 +1786,13 @@ getTables(int *numTables, FuncInfo *finfo, int numFuncs)
 							break;
 					}
 					p--;
-					for (s = tgargs, d = &(farg[0]); s < p;)
+					for (s = tgargs; s < p;)
 					{
 						if (*s == '\'')
-							*d++ = '\\';
-						*d++ = *s++;
+							appendPQExpBufferChar(farg, '\\');
+						appendPQExpBufferChar(farg, *s++);
 					}
-					*d = 0;
-					appendPQExpBuffer(query, "'%s'%s", farg,
+					appendPQExpBuffer(query, "'%s'%s", farg->data,
 							(findx < tgnargs - 1) ? ", " : "");
 					tgargs = p + 4;
 				}