diff --git a/src/bin/pg_dump/pg_dump_sort.c b/src/bin/pg_dump/pg_dump_sort.c
index 4b9bba0..816c9f0 100644
*** a/src/bin/pg_dump/pg_dump_sort.c
--- b/src/bin/pg_dump/pg_dump_sort.c
*************** DOTypeNameCompare(const void *p1, const 
*** 291,303 ****
  	{
  		FuncInfo   *fobj1 = *(FuncInfo *const *) p1;
  		FuncInfo   *fobj2 = *(FuncInfo *const *) p2;
  
  		cmpval = fobj1->nargs - fobj2->nargs;
  		if (cmpval != 0)
  			return cmpval;
! 		cmpval = strcmp(fobj1->proiargs, fobj2->proiargs);
! 		if (cmpval != 0)
! 			return cmpval;
  	}
  	else if (obj1->objType == DO_OPERATOR)
  	{
--- 291,307 ----
  	{
  		FuncInfo   *fobj1 = *(FuncInfo *const *) p1;
  		FuncInfo   *fobj2 = *(FuncInfo *const *) p2;
+ 		int			i;
  
  		cmpval = fobj1->nargs - fobj2->nargs;
  		if (cmpval != 0)
  			return cmpval;
! 		for (i = 0; i < fobj1->nargs; i++)
! 		{
! 			cmpval = oidcmp(fobj1->argtypes[i], fobj2->argtypes[i]);
! 			if (cmpval != 0)
! 				return cmpval;
! 		}
  	}
  	else if (obj1->objType == DO_OPERATOR)
  	{
