diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 9eea8cd1266034b1a5946c9cc45f604330c8f45e..3e1c6c4667ded27acb858b94f6032f151714d75e 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.37 2000/01/10 17:14:31 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.38 2000/01/11 02:30:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -80,7 +80,7 @@ ProcedureCreate(char *procedureName,
 	{
 		Value	   *t = lfirst(x);
 
-		if (parameterCount == FUNC_MAX_ARGS)
+		if (parameterCount > FUNC_MAX_ARGS)
 			elog(ERROR, "Procedures cannot take more than %d arguments",FUNC_MAX_ARGS);
 
 		if (strcmp(strVal(t), "opaque") == 0)
diff --git a/src/backend/libpq/be-pqexec.c b/src/backend/libpq/be-pqexec.c
index 00b7aca8dee2a7cef30b7b4a1914141d8be1dcda..8b6a880e2e1038e2beda374822a644dfbacd20a5 100644
--- a/src/backend/libpq/be-pqexec.c
+++ b/src/backend/libpq/be-pqexec.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.26 2000/01/10 17:14:35 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.27 2000/01/11 02:30:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -81,6 +81,8 @@ PQfn(int fnid,
 	retval = (char *)
 		fmgr(fnid, arg[0], arg[1], arg[2], arg[3],
 			 arg[4], arg[5], arg[6], arg[7]);
+			 arg[8], arg[9], arg[10], arg[11]);
+			 arg[12], arg[13], arg[14], arg[15]);
 
 	/* ----------------
 	 *	put the result in the buffer the user specified and
diff --git a/src/include/config.h.in b/src/include/config.h.in
index af032952ef1c40f9fec3c22a327373b6a2fc0bdd..85cf00112d4bd4a8a0738a7c1efd1af4e6f8deed 100644
--- a/src/include/config.h.in
+++ b/src/include/config.h.in
@@ -101,7 +101,7 @@
  * pgsql/src/backend/utils/fmgr/fmgr.c and add additional entries 
  * to the 'case' statement for the additional arguments.
  */
-#define INDEX_MAX_KEYS		8
+#define INDEX_MAX_KEYS		16
 #define FUNC_MAX_ARGS		(INDEX_MAX_KEYS+1)
 
 /*