diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 1158fdc7b553a3f7cac2c59bb45cdc3ec6af9200..33777cb468a8aeeb290010b7186c74ea588c5eb8 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
  *			  out of it's tuple
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.12 1999/05/12 15:01:58 wieck Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.13 1999/05/12 17:59:31 wieck Exp $
  *
  *	  This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -788,7 +788,7 @@ make_viewdef(HeapTuple ruletup, TupleDesc rulettc)
 
 	query = (Query *) lfirst(actions);
 
-	if (ev_type != '1' || ev_attr >= 0 || !is_instead || strcmp(ev_qual, ""))
+	if (ev_type != '1' || ev_attr >= 0 || !is_instead || strcmp(ev_qual, "<>"))
 		return "Not a view";
 
 	strcpy(buf, get_query_def(query, NULL));
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index cbc1c196e9174728388f53e96214ca1098f84eca..15749cc9a650ff05a6df6a6035d6c45a0181f4d5 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1064,3 +1064,60 @@ sl7       |       6|brown     |    60|cm      |       60
 sl8       |      21|brown     |    40|inch    |    101.6
 (9 rows)
 
+QUERY: SELECT * FROM pg_views ORDER BY viewname;
+viewname          |viewowner|definition                                                                                                                                                                                                                                                                                                                                                                                                                    
+------------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+iexit             |pgsql    |SELECT "ih"."name", "ih"."thepath", "interpt_pp"("ih"."thepath", "r"."thepath") AS "exit" FROM "ihighway" "ih", "ramp" "r" WHERE "ih"."thepath" ## "r"."thepath";                                                                                                                                                                                                                                                             
+pg_indexes        |pgsql    |SELECT "c"."relname" AS "tablename", "i"."relname" AS "indexname", "pg_get_indexdef"("x"."indexrelid") AS "indexdef" FROM "pg_index" "x", "pg_class" "c", "pg_class" "i" WHERE ("c"."oid" = "x"."indrelid") AND ("i"."oid" = "x"."indexrelid");                                                                                                                                                                               
+pg_rules          |pgsql    |SELECT "c"."relname" AS "tablename", "r"."rulename", "pg_get_ruledef"("r"."rulename") AS "definition" FROM "pg_rewrite" "r", "pg_class" "c" WHERE ("r"."rulename" !~ '^_RET'::"text") AND ("c"."oid" = "r"."ev_class");                                                                                                                                                                                                       
+pg_tables         |pgsql    |SELECT "c"."relname" AS "tablename", "pg_get_userbyid"("c"."relowner") AS "tableowner", "c"."relhasindex" AS "hasindexes", "c"."relhasrules" AS "hasrules", "c"."reltriggers" > '0'::"int4" AS "hastriggers" FROM "pg_class" "c" WHERE (("c"."relkind" = 'r'::"char") OR ("c"."relkind" = 's'::"char")) AND (NOT (EXISTS (SELECT "rulename" FROM "pg_rewrite" WHERE ("ev_class" = "c"."oid") AND ("ev_type" = '1'::"char"))));
+pg_user           |pgsql    |SELECT "usename", "usesysid", "usecreatedb", "usetrace", "usesuper", "usecatupd", '********'::"text" AS "passwd", "valuntil" FROM "pg_shadow";                                                                                                                                                                                                                                                                                
+pg_views          |pgsql    |SELECT "c"."relname" AS "viewname", "pg_get_userbyid"("c"."relowner") AS "viewowner", "pg_get_viewdef"("c"."relname") AS "definition" FROM "pg_class" "c" WHERE ("c"."relhasrules") AND (EXISTS (SELECT "r"."rulename" FROM "pg_rewrite" "r" WHERE ("r"."ev_class" = "c"."oid") AND ("r"."ev_type" = '1'::"char")));                                                                                                          
+rtest_v1          |pgsql    |SELECT "a", "b" FROM "rtest_t1";                                                                                                                                                                                                                                                                                                                                                                                              
+rtest_vcomp       |pgsql    |SELECT "x"."part", "x"."size" * "y"."factor" AS "size_in_cm" FROM "rtest_comp" "x", "rtest_unitfact" "y" WHERE "x"."unit" = "y"."unit";                                                                                                                                                                                                                                                                                       
+rtest_vview1      |pgsql    |SELECT "x"."a", "x"."b" FROM "rtest_view1" "x" WHERE '0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE "y"."a" = "x"."a");                                                                                                                                                                                                                                                                       
+rtest_vview2      |pgsql    |SELECT "a", "b" FROM "rtest_view1" WHERE "v";                                                                                                                                                                                                                                                                                                                                                                                 
+rtest_vview3      |pgsql    |SELECT "x"."a", "x"."b" FROM "rtest_vview2" "x" WHERE '0'::"int4" < (SELECT "count"("y"."a") AS "count" FROM "rtest_view2" "y" WHERE "y"."a" = "x"."a");                                                                                                                                                                                                                                                                      
+rtest_vview4      |pgsql    |SELECT "x"."a", "x"."b", "count"("y"."a") AS "refcount" FROM "rtest_view1" "x", "rtest_view2" "y" WHERE "x"."a" = "y"."a" GROUP BY "x"."a", "x"."b";                                                                                                                                                                                                                                                                          
+rtest_vview5      |pgsql    |SELECT "a", "b", "rtest_viewfunc1"("a") AS "refcount" FROM "rtest_view1";                                                                                                                                                                                                                                                                                                                                                     
+shoe              |pgsql    |SELECT "sh"."shoename", "sh"."sh_avail", "sh"."slcolor", "sh"."slminlen", "sh"."slminlen" * "un"."un_fact" AS "slminlen_cm", "sh"."slmaxlen", "sh"."slmaxlen" * "un"."un_fact" AS "slmaxlen_cm", "sh"."slunit" FROM "shoe_data" "sh", "unit" "un" WHERE "sh"."slunit" = "un"."un_name";                                                                                                                                       
+shoe_ready        |pgsql    |SELECT "rsh"."shoename", "rsh"."sh_avail", "rsl"."sl_name", "rsl"."sl_avail", "int4smaller"("rsh"."sh_avail", "rsl"."sl_avail") AS "total_avail" FROM "shoe" "rsh", "shoelace" "rsl" WHERE (("rsl"."sl_color" = "rsh"."slcolor") AND ("rsl"."sl_len_cm" >= "rsh"."slminlen_cm")) AND ("rsl"."sl_len_cm" <= "rsh"."slmaxlen_cm");                                                                                              
+shoelace          |pgsql    |SELECT "s"."sl_name", "s"."sl_avail", "s"."sl_color", "s"."sl_len", "s"."sl_unit", "s"."sl_len" * "u"."un_fact" AS "sl_len_cm" FROM "shoelace_data" "s", "unit" "u" WHERE "s"."sl_unit" = "u"."un_name";                                                                                                                                                                                                                      
+shoelace_candelete|pgsql    |SELECT "sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit", "sl_len_cm" FROM "shoelace_obsolete" WHERE "sl_avail" = '0'::"int4";                                                                                                                                                                                                                                                                                           
+shoelace_obsolete |pgsql    |SELECT "sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit", "sl_len_cm" FROM "shoelace" WHERE NOT (EXISTS (SELECT "shoename" FROM "shoe" WHERE "slcolor" = "sl_color"));                                                                                                                                                                                                                                                   
+street            |pgsql    |SELECT "r"."name", "r"."thepath", "c"."cname" FROM "road" "r", "real_city" "c" WHERE "c"."outline" ## "r"."thepath";                                                                                                                                                                                                                                                                                                          
+toyemp            |pgsql    |SELECT "name", "age", "location", '12'::"int4" * "salary" AS "annualsal" FROM "emp";                                                                                                                                                                                                                                                                                                                                          
+(20 rows)
+
+QUERY: SELECT * FROM pg_rules ORDER BY tablename, rulename;
+tablename    |rulename       |definition                                                                                                                                                                                                                                                                   
+-------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+rtest_emp    |rtest_emp_del  |CREATE RULE "rtest_emp_del" AS ON DELETE TO "rtest_emp" WHERE  DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (current."ename", "getpgusername"(), 'fired'::"bpchar", '$0.00'::"money", current."salary");                              
+rtest_emp    |rtest_emp_ins  |CREATE RULE "rtest_emp_ins" AS ON INSERT TO "rtest_emp" WHERE  DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'hired'::"bpchar", new."salary", '$0.00'::"money");                                      
+rtest_emp    |rtest_emp_upd  |CREATE RULE "rtest_emp_upd" AS ON UPDATE TO "rtest_emp" WHERE new."salary" <> current."salary" DO INSERT INTO "rtest_emplog" ("ename", "who", "action", "newsal", "oldsal") VALUES (new."ename", "getpgusername"(), 'honored'::"bpchar", new."salary", current."salary");    
+rtest_nothn1 |rtest_nothn_r1 |CREATE RULE "rtest_nothn_r1" AS ON INSERT TO "rtest_nothn1" WHERE (new."a" >= '10'::"int4") AND (new."a" < '20'::"int4") DO INSTEAD SELECT '1'::"int4";                                                                                                                      
+rtest_nothn1 |rtest_nothn_r2 |CREATE RULE "rtest_nothn_r2" AS ON INSERT TO "rtest_nothn1" WHERE (new."a" >= '30'::"int4") AND (new."a" < '40'::"int4") DO INSTEAD NOTHING;                                                                                                                                 
+rtest_nothn2 |rtest_nothn_r3 |CREATE RULE "rtest_nothn_r3" AS ON INSERT TO "rtest_nothn2" WHERE new."a" >= '100'::"int4" DO INSTEAD INSERT INTO "rtest_nothn3" ("a", "b") VALUES (new."a", new."b");                                                                                                       
+rtest_nothn2 |rtest_nothn_r4 |CREATE RULE "rtest_nothn_r4" AS ON INSERT TO "rtest_nothn2" WHERE  DO INSTEAD NOTHING;                                                                                                                                                                                       
+rtest_order1 |rtest_order_r1 |CREATE RULE "rtest_order_r1" AS ON INSERT TO "rtest_order1" WHERE  DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 1 - this should run 3rd or 4th'::"text");                                                    
+rtest_order1 |rtest_order_r2 |CREATE RULE "rtest_order_r2" AS ON INSERT TO "rtest_order1" WHERE  DO INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 2 - this should run 1st'::"text");                                                                   
+rtest_order1 |rtest_order_r3 |CREATE RULE "rtest_order_r3" AS ON INSERT TO "rtest_order1" WHERE  DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 3 - this should run 3rd or 4th'::"text");                                                    
+rtest_order1 |rtest_order_r4 |CREATE RULE "rtest_order_r4" AS ON INSERT TO "rtest_order1" WHERE "a" < '100'::"int4" DO INSTEAD INSERT INTO "rtest_order2" ("a", "b", "c") VALUES (new."a", "nextval"('rtest_seq'::"text"), 'rule 4 - this should run 2nd'::"text");                                        
+rtest_person |rtest_pers_del |CREATE RULE "rtest_pers_del" AS ON DELETE TO "rtest_person" WHERE  DO DELETE FROM "rtest_admin" WHERE "pname" = current."pname";                                                                                                                                             
+rtest_person |rtest_pers_upd |CREATE RULE "rtest_pers_upd" AS ON UPDATE TO "rtest_person" WHERE  DO UPDATE rtest_admin SET "pname" = new."pname" WHERE "pname" = current."pname";                                                                                                                          
+rtest_system |rtest_sys_del  |CREATE RULE "rtest_sys_del" AS ON DELETE TO "rtest_system" WHERE  DO (DELETE FROM "rtest_interface" WHERE "sysname" = current."sysname"; DELETE FROM "rtest_admin" WHERE "sysname" = current."sysname"; );                                                                   
+rtest_system |rtest_sys_upd  |CREATE RULE "rtest_sys_upd" AS ON UPDATE TO "rtest_system" WHERE  DO (UPDATE rtest_interface SET "sysname" = new."sysname" WHERE "sysname" = current."sysname"; UPDATE rtest_admin SET "sysname" = new."sysname" WHERE "sysname" = current."sysname"; );                     
+rtest_t4     |rtest_t4_ins1  |CREATE RULE "rtest_t4_ins1" AS ON INSERT TO "rtest_t4" WHERE (new."a" >= '10'::"int4") AND (new."a" < '20'::"int4") DO INSTEAD INSERT INTO "rtest_t5" ("a", "b") VALUES (new."a", new."b");                                                                                  
+rtest_t4     |rtest_t4_ins2  |CREATE RULE "rtest_t4_ins2" AS ON INSERT TO "rtest_t4" WHERE (new."a" >= '20'::"int4") AND (new."a" < '30'::"int4") DO INSERT INTO "rtest_t6" ("a", "b") VALUES (new."a", new."b");                                                                                          
+rtest_t5     |rtest_t5_ins   |CREATE RULE "rtest_t5_ins" AS ON INSERT TO "rtest_t5" WHERE new."a" > '15'::"int4" DO INSERT INTO "rtest_t7" ("a", "b") VALUES (new."a", new."b");                                                                                                                           
+rtest_t6     |rtest_t6_ins   |CREATE RULE "rtest_t6_ins" AS ON INSERT TO "rtest_t6" WHERE new."a" > '25'::"int4" DO INSTEAD INSERT INTO "rtest_t8" ("a", "b") VALUES (new."a", new."b");                                                                                                                   
+rtest_v1     |rtest_v1_del   |CREATE RULE "rtest_v1_del" AS ON DELETE TO "rtest_v1" WHERE  DO INSTEAD DELETE FROM "rtest_t1" WHERE "a" = current."a";                                                                                                                                                      
+rtest_v1     |rtest_v1_ins   |CREATE RULE "rtest_v1_ins" AS ON INSERT TO "rtest_v1" WHERE  DO INSTEAD INSERT INTO "rtest_t1" ("a", "b") VALUES (new."a", new."b");                                                                                                                                         
+rtest_v1     |rtest_v1_upd   |CREATE RULE "rtest_v1_upd" AS ON UPDATE TO "rtest_v1" WHERE  DO INSTEAD UPDATE rtest_t1 SET "a" = new."a", "b" = new."b" WHERE "a" = current."a";                                                                                                                            
+shoelace     |shoelace_del   |CREATE RULE "shoelace_del" AS ON DELETE TO "shoelace" WHERE  DO INSTEAD DELETE FROM "shoelace_data" WHERE "sl_name" = current."sl_name";                                                                                                                                     
+shoelace     |shoelace_ins   |CREATE RULE "shoelace_ins" AS ON INSERT TO "shoelace" WHERE  DO INSTEAD INSERT INTO "shoelace_data" ("sl_name", "sl_avail", "sl_color", "sl_len", "sl_unit") VALUES (new."sl_name", new."sl_avail", new."sl_color", new."sl_len", new."sl_unit");                            
+shoelace     |shoelace_upd   |CREATE RULE "shoelace_upd" AS ON UPDATE TO "shoelace" WHERE  DO INSTEAD UPDATE shoelace_data SET "sl_name" = new."sl_name", "sl_avail" = new."sl_avail", "sl_color" = new."sl_color", "sl_len" = new."sl_len", "sl_unit" = new."sl_unit" WHERE "sl_name" = current."sl_name";
+shoelace_data|log_shoelace   |CREATE RULE "log_shoelace" AS ON UPDATE TO "shoelace_data" WHERE new."sl_avail" <> current."sl_avail" DO INSERT INTO "shoelace_log" ("sl_name", "sl_avail", "log_who", "log_when") VALUES (new."sl_name", new."sl_avail", 'Al Bundy'::"name", "datetime"('epoch'::"text"));  
+shoelace_ok  |shoelace_ok_ins|CREATE RULE "shoelace_ok_ins" AS ON INSERT TO "shoelace_ok" WHERE  DO INSTEAD UPDATE shoelace SET "sl_avail" = "sl_avail" + new."ok_quant" WHERE "sl_name" = new."ok_name";                                                                                                  
+(27 rows)
+
diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql
index 3b92f7eb7baeb898d75bf852d6830f13702a9b41..82142776a29d6207d56e94f5c1a4a3d70b6e303a 100644
--- a/src/test/regress/sql/rules.sql
+++ b/src/test/regress/sql/rules.sql
@@ -681,3 +681,12 @@ DELETE FROM shoelace WHERE EXISTS
              WHERE sl_name = shoelace.sl_name);
 
 SELECT * FROM shoelace ORDER BY sl_name;
+
+
+--
+-- Check that ruleutils are working
+--
+SELECT * FROM pg_views ORDER BY viewname;
+
+SELECT * FROM pg_rules ORDER BY tablename, rulename;
+