diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c
index d2aa8d0ca3..93ba333ddc 100644
--- a/src/backend/statistics/extended_stats.c
+++ b/src/backend/statistics/extended_stats.c
@@ -1619,7 +1619,7 @@ statext_is_compatible_clause(PlannerInfo *root, Node *clause, Index relid,
 		/* Don't have table privilege, must check individual columns */
 		if (*exprs != NIL)
 		{
-			pull_varattnos((Node *) exprs, relid, &clause_attnums);
+			pull_varattnos((Node *) *exprs, relid, &clause_attnums);
 			clause_attnums = bms_add_members(clause_attnums, *attnums);
 		}
 		else
@@ -1639,6 +1639,9 @@ statext_is_compatible_clause(PlannerInfo *root, Node *clause, Index relid,
 
 			while ((attnum = bms_next_member(clause_attnums, attnum)) >= 0)
 			{
+				 /* bit #s are offset by FirstLowInvalidHeapAttributeNumber */
+				attnum = attnum + FirstLowInvalidHeapAttributeNumber;
+
 				if (pg_attribute_aclcheck(rte->relid, attnum, userid,
 										  ACL_SELECT) != ACLCHECK_OK)
 					return false;
