diff --git a/doc/src/sgml/ref/alter_extension.sgml b/doc/src/sgml/ref/alter_extension.sgml
index 2dbba0c..1e9b1c6 100644
*** a/doc/src/sgml/ref/alter_extension.sgml
--- b/doc/src/sgml/ref/alter_extension.sgml
*************** ALTER EXTENSION <replaceable class="PARA
*** 44,49 ****
--- 44,50 ----
    OPERATOR CLASS <replaceable class="PARAMETER">object_name</replaceable> USING <replaceable class="parameter">index_method</replaceable> |
    OPERATOR FAMILY <replaceable class="PARAMETER">object_name</replaceable> USING <replaceable class="parameter">index_method</replaceable> |
    [ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
+   RULE <replaceable class="PARAMETER">object_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
    SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
    SEQUENCE <replaceable class="PARAMETER">object_name</replaceable> |
    SERVER <replaceable class="PARAMETER">object_name</replaceable> |
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 73c446a..5fce88b 100644
*** a/src/backend/parser/gram.y
--- b/src/backend/parser/gram.y
*************** AlterExtensionContentsStmt:
*** 3729,3734 ****
--- 3729,3743 ----
  					n->objargs = list_make1(makeString($9));
  					$$ = (Node *)n;
  				}
+ 			| ALTER EXTENSION name add_drop RULE name ON any_name
+ 				{
+ 					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
+ 					n->extname = $3;
+ 					n->action = $4;
+ 					n->objtype = OBJECT_RULE;
+ 					n->objname = lappend($8, makeString($6));
+ 					$$ = (Node *)n;
+ 				}
  			| ALTER EXTENSION name add_drop SCHEMA name
  				{
  					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index cb59f13..c48c661 100644
*** a/src/backend/rewrite/rewriteDefine.c
--- b/src/backend/rewrite/rewriteDefine.c
*************** InsertRule(char *rulname,
*** 181,186 ****
--- 181,189 ----
  							   DEPENDENCY_NORMAL);
  	}
  
+ 	/* dependency on extension */
+ 	recordDependencyOnCurrentExtension(&myself, is_update);
+ 
  	/* Post creation hook for new rule */
  	InvokeObjectPostCreateHook(RewriteRelationId, rewriteObjectId, 0);
  
