diff --git a/xml/resources-3.0.rng b/xml/resources-3.0.rng
index e6fdda8a76..3000b78208 100644
--- a/xml/resources-3.0.rng
+++ b/xml/resources-3.0.rng
@@ -1,455 +1,465 @@
isolation
isolation-host
isolation-instance
isolation-wrapper
pcmk_arg_map
pcmk_list_cmd
pcmk_monitor_cmd
pcmk_off_cmd
pcmk_on_cmd
pcmk_reboot_cmd
pcmk_status_cmd
([0-9\-]+)
requires
+ interval-origin
+ start-delay
+
+ enabled
+ on-fail
+ record-pending
+ role
+ timeout
+
requires
Stopped
Started
Slave
Master
ignore
block
stop
restart
standby
fence
restart-container
ocf
lsb
heartbeat
stonith
upstart
service
systemd
nagios
diff --git a/xml/test-2/072-rsc-op-attrs-inst-requires-no-override.ref.err b/xml/test-2/072-rsc-op-attrs-inst-requires-no-override.ref.err
index f5fa9083a8..bacdc09be7 100644
--- a/xml/test-2/072-rsc-op-attrs-inst-requires-no-override.ref.err
+++ b/xml/test-2/072-rsc-op-attrs-inst-requires-no-override.ref.err
@@ -1,4 +1,4 @@
Resources-operation instance_attributes: myAddr-start (rsc=myAddr, meta=myAddr-start-instance): moving requires under per-resource-meta_attributes as requires unless already defined there for matching start|promote
Resources-operation: myAddr-start (rsc=myAddr): moving requires under meta_attributes as requires unless already defined there for matching start|promote
-Resources-operation: stateful-promote (rsc=stateful, meta=stateful-promote-meta): moving requires under meta_attributes as requires unless already defined there for matching start|promote
Resources-operation instance_attributes: stateful-promote (rsc=stateful, meta=stateful-promote-instance): moving requires under per-resource-meta_attributes as requires unless already defined there for matching start|promote
+Resources-operation: stateful-promote (rsc=stateful, meta=stateful-promote-meta): moving requires under meta_attributes as requires unless already defined there for matching start|promote
diff --git a/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref
new file mode 100644
index 0000000000..28b1d17336
--- /dev/null
+++ b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref.err b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref.err
new file mode 100644
index 0000000000..0410a57811
--- /dev/null
+++ b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.ref.err
@@ -0,0 +1,4 @@
+Resources-operation instance_attributes: myAddr-start (rsc=myAddr, meta=myAddr-start-instance): moving on-fail under meta_attributes as on-fail unless already defined there
+Resources-operation instance_attributes: myAddr-start (rsc=myAddr, meta=myAddr-start-instance): moving record-pending under meta_attributes as record-pending unless already defined there
+Resources-operation instance_attributes: myHttpd-monitor (rsc=myHttpd, meta=myHttpd-monitor-instance): moving timeout under meta_attributes as timeout unless already defined there
+Resources-operation instance_attributes: myHttpd-monitor (rsc=myHttpd, meta=myHttpd-monitor-instance2): moving timeout under meta_attributes as timeout unless already defined there
diff --git a/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.xml b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.xml
new file mode 100644
index 0000000000..736d54669f
--- /dev/null
+++ b/xml/test-2/073-rsc-op-attrs-inst-meta-meaning.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xml/upgrade-2.10.xsl b/xml/upgrade-2.10.xsl
index 8d5d5f4e0d..03ea60d812 100644
--- a/xml/upgrade-2.10.xsl
+++ b/xml/upgrade-2.10.xsl
@@ -1,2280 +1,2488 @@
+ where-cases="meta_attributes|per-resource-meta_attributes">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ' does not hold (',
+ not(($InverseMode)), ')')"/>
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+ != $ProcessedOpMetaAttributes
+ or
+ (
+ not(rule)
+ and
+ not(preceding-sibling::meta_attributes[not(rule)])
+ and
+ normalize-space($ProcessedInverseNonruleOpInstanceAttributes)
+ != $ProcessedInverseNonruleOpInstanceAttributes
+ )">
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+