diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 2dcaadc177fb25cf4b73452d41bad10736f2c88d..c8ed3ed8cb21e2ef683d23477dc3893b9e1a4724 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *	$Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.251 2002/10/14 22:14:35 tgl Exp $
+ *	$Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.252 2002/10/20 00:31:53 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1454,6 +1454,10 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt,
 	if (length(pstate->p_rtable) != 2)	/* naughty, naughty... */
 		elog(ERROR, "Rule WHERE condition may not contain references to other relations");
 
+	/* aggregates not allowed (but subselects are okay) */
+	if (contain_agg_clause(stmt->whereClause))
+		elog(ERROR, "Rule WHERE condition may not contain aggregate functions");
+
 	/* save info about sublinks in where clause */
 	qry->hasSubLinks = pstate->p_hasSubLinks;