diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
new file mode 100644
index dfc6118..8686ed0
*** a/src/bin/pg_dump/dumputils.c
--- b/src/bin/pg_dump/dumputils.c
*************** buildACLQueries(PQExpBuffer acl_subquery
*** 723,742 ****
  	 * these are run the initial privileges will be in place, even in a binary
  	 * upgrade situation (see below).
  	 */
! 	printfPQExpBuffer(acl_subquery, "(SELECT pg_catalog.array_agg(acl) FROM "
! 					  "(SELECT pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s))) AS acl "
! 					  "EXCEPT "
! 					  "SELECT pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s)))) as foo)",
  					  acl_column,
  					  obj_kind,
  					  acl_owner,
  					  obj_kind,
  					  acl_owner);
  
! 	printfPQExpBuffer(racl_subquery, "(SELECT pg_catalog.array_agg(acl) FROM "
! 					  "(SELECT pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s))) AS acl "
! 					  "EXCEPT "
! 					  "SELECT pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s)))) as foo)",
  					  obj_kind,
  					  acl_owner,
  					  acl_column,
--- 723,742 ----
  	 * these are run the initial privileges will be in place, even in a binary
  	 * upgrade situation (see below).
  	 */
! 	printfPQExpBuffer(acl_subquery, "(SELECT pg_catalog.array_agg(acl ORDER BY row_n) FROM "
! 					  "(SELECT acl, row_n FROM pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s))) WITH ORDINALITY AS perm(acl,row_n) "
! 					  "WHERE NOT EXISTS ( "
! 					  "SELECT 1 FROM pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s))) AS init(init_acl) WHERE acl = init_acl)) as foo)",
  					  acl_column,
  					  obj_kind,
  					  acl_owner,
  					  obj_kind,
  					  acl_owner);
  
! 	printfPQExpBuffer(racl_subquery, "(SELECT pg_catalog.array_agg(acl ORDER BY row_n) FROM "
! 					  "(SELECT acl, row_n FROM pg_catalog.unnest(coalesce(pip.initprivs,pg_catalog.acldefault(%s,%s))) WITH ORDINALITY AS initp(acl,row_n) "
! 					  "WHERE NOT EXISTS ( "
! 					  "SELECT 1 FROM pg_catalog.unnest(coalesce(%s,pg_catalog.acldefault(%s,%s))) AS permp(orig_acl) WHERE acl = orig_acl)) as foo)",
  					  obj_kind,
  					  acl_owner,
  					  acl_column,
*************** buildACLQueries(PQExpBuffer acl_subquery
*** 761,779 ****
  	{
  		printfPQExpBuffer(init_acl_subquery,
  						  "CASE WHEN privtype = 'e' THEN "
! 						  "(SELECT pg_catalog.array_agg(acl) FROM "
! 						  "(SELECT pg_catalog.unnest(pip.initprivs) AS acl "
! 						  "EXCEPT "
! 						  "SELECT pg_catalog.unnest(pg_catalog.acldefault(%s,%s))) as foo) END",
  						  obj_kind,
  						  acl_owner);
  
  		printfPQExpBuffer(init_racl_subquery,
  						  "CASE WHEN privtype = 'e' THEN "
  						  "(SELECT pg_catalog.array_agg(acl) FROM "
! 						  "(SELECT pg_catalog.unnest(pg_catalog.acldefault(%s,%s)) AS acl "
! 						  "EXCEPT "
! 						  "SELECT pg_catalog.unnest(pip.initprivs)) as foo) END",
  						  obj_kind,
  						  acl_owner);
  	}
--- 761,779 ----
  	{
  		printfPQExpBuffer(init_acl_subquery,
  						  "CASE WHEN privtype = 'e' THEN "
! 						  "(SELECT pg_catalog.array_agg(acl ORDER BY row_n) FROM "
! 						  "(SELECT acl, row_n FROM pg_catalog.unnest(pip.initprivs) WITH ORDINALITY AS initp(acl,row_n) "
! 						  "WHERE NOT EXISTS ( "
! 						  "SELECT 1 FROM pg_catalog.unnest(pg_catalog.acldefault(%s,%s)) AS privm(orig_acl) WHERE acl = orig_acl)) as foo) END",
  						  obj_kind,
  						  acl_owner);
  
  		printfPQExpBuffer(init_racl_subquery,
  						  "CASE WHEN privtype = 'e' THEN "
  						  "(SELECT pg_catalog.array_agg(acl) FROM "
! 						  "(SELECT acl, row_n FROM pg_catalog.unnest(pg_catalog.acldefault(%s,%s)) WITH ORDINALITY AS privp(acl,row_n) "
! 						  "WHERE NOT EXISTS ( "
! 						  "SELECT 1 FROM pg_catalog.unnest(pip.initprivs) AS initp(init_acl) WHERE acl = init_acl)) as foo) END",
  						  obj_kind,
  						  acl_owner);
  	}
