diff --git a/cts/cts-scheduler.in b/cts/cts-scheduler.in
index 0e68e73..9e34379 100644
--- a/cts/cts-scheduler.in
+++ b/cts/cts-scheduler.in
@@ -482,6 +482,7 @@ TESTS = [
[ "on_fail_demote2", "Recovery with on-fail=\"demote\" with promotion on different node" ],
[ "on_fail_demote3", "Recovery with on-fail=\"demote\" with no promotion" ],
[ "on_fail_demote4", "Recovery with on-fail=\"demote\" on failed cluster, remote, guest, and bundle nodes" ],
+ [ "no_quorum_demote", "Promotable demotion and primitive stop with no-quorum-policy=\"demote\"" ],
],
[
[ "history-1", "Correctly parse stateful-1 resource state" ],
diff --git a/cts/scheduler/no_quorum_demote.dot b/cts/scheduler/no_quorum_demote.dot
new file mode 100644
index 0000000..ea5b30c
--- /dev/null
+++ b/cts/scheduler/no_quorum_demote.dot
@@ -0,0 +1,22 @@
+ digraph "g" {
+"Cancel rsc1_monitor_10000 rhel7-1" -> "rsc1_demote_0 rhel7-1" [ style = bold]
+"Cancel rsc1_monitor_10000 rhel7-1" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_120000 rhel7-1" [ style=dashed color="red" fontcolor="black"]
+"Fencing_start_0 rhel7-1" -> "Fencing_monitor_120000 rhel7-1" [ style = dashed]
+"Fencing_start_0 rhel7-1" [ style=dashed color="red" fontcolor="black"]
+"Fencing_stop_0 rhel7-1" -> "Fencing_start_0 rhel7-1" [ style = dashed]
+"Fencing_stop_0 rhel7-1" [ style=bold color="green" fontcolor="black"]
+"rsc1-clone_demote_0" -> "rsc1-clone_demoted_0" [ style = bold]
+"rsc1-clone_demote_0" -> "rsc1_demote_0 rhel7-1" [ style = bold]
+"rsc1-clone_demote_0" [ style=bold color="green" fontcolor="orange"]
+"rsc1-clone_demoted_0" [ style=bold color="green" fontcolor="orange"]
+"rsc1_demote_0 rhel7-1" -> "rsc1-clone_demoted_0" [ style = bold]
+"rsc1_demote_0 rhel7-1" -> "rsc1_monitor_11000 rhel7-1" [ style = bold]
+"rsc1_demote_0 rhel7-1" [ style=bold color="green" fontcolor="black"]
+"rsc1_monitor_11000 rhel7-1" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_10000 rhel7-2" [ style=dashed color="red" fontcolor="black"]
+"rsc2_start_0 rhel7-2" -> "rsc2_monitor_10000 rhel7-2" [ style = dashed]
+"rsc2_start_0 rhel7-2" [ style=dashed color="red" fontcolor="black"]
+"rsc2_stop_0 rhel7-2" -> "rsc2_start_0 rhel7-2" [ style = dashed]
+"rsc2_stop_0 rhel7-2" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/cts/scheduler/no_quorum_demote.exp b/cts/scheduler/no_quorum_demote.exp
new file mode 100644
index 0000000..245574c
--- /dev/null
+++ b/cts/scheduler/no_quorum_demote.exp
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cts/scheduler/no_quorum_demote.scores b/cts/scheduler/no_quorum_demote.scores
new file mode 100644
index 0000000..dddc57b
--- /dev/null
+++ b/cts/scheduler/no_quorum_demote.scores
@@ -0,0 +1,72 @@
+Allocation scores:
+Using the original execution date of: 2020-06-17 17:26:35Z
+pcmk__clone_allocate: rsc1-clone allocation score on rhel7-1: 0
+pcmk__clone_allocate: rsc1-clone allocation score on rhel7-2: 0
+pcmk__clone_allocate: rsc1-clone allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1-clone allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1-clone allocation score on rhel7-5: 0
+pcmk__clone_allocate: rsc1:0 allocation score on rhel7-1: 11
+pcmk__clone_allocate: rsc1:0 allocation score on rhel7-2: 0
+pcmk__clone_allocate: rsc1:0 allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1:0 allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1:0 allocation score on rhel7-5: 0
+pcmk__clone_allocate: rsc1:1 allocation score on rhel7-1: 0
+pcmk__clone_allocate: rsc1:1 allocation score on rhel7-2: 6
+pcmk__clone_allocate: rsc1:1 allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1:1 allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1:1 allocation score on rhel7-5: 0
+pcmk__clone_allocate: rsc1:2 allocation score on rhel7-1: 10
+pcmk__clone_allocate: rsc1:2 allocation score on rhel7-2: 5
+pcmk__clone_allocate: rsc1:2 allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1:2 allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1:2 allocation score on rhel7-5: 0
+pcmk__clone_allocate: rsc1:3 allocation score on rhel7-1: 10
+pcmk__clone_allocate: rsc1:3 allocation score on rhel7-2: 5
+pcmk__clone_allocate: rsc1:3 allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1:3 allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1:3 allocation score on rhel7-5: 0
+pcmk__clone_allocate: rsc1:4 allocation score on rhel7-1: 10
+pcmk__clone_allocate: rsc1:4 allocation score on rhel7-2: 5
+pcmk__clone_allocate: rsc1:4 allocation score on rhel7-3: 0
+pcmk__clone_allocate: rsc1:4 allocation score on rhel7-4: 0
+pcmk__clone_allocate: rsc1:4 allocation score on rhel7-5: 0
+pcmk__native_allocate: Fencing allocation score on rhel7-1: 0
+pcmk__native_allocate: Fencing allocation score on rhel7-2: 0
+pcmk__native_allocate: Fencing allocation score on rhel7-3: 0
+pcmk__native_allocate: Fencing allocation score on rhel7-4: 0
+pcmk__native_allocate: Fencing allocation score on rhel7-5: 0
+pcmk__native_allocate: rsc1:0 allocation score on rhel7-1: 11
+pcmk__native_allocate: rsc1:0 allocation score on rhel7-2: 0
+pcmk__native_allocate: rsc1:0 allocation score on rhel7-3: -INFINITY
+pcmk__native_allocate: rsc1:0 allocation score on rhel7-4: -INFINITY
+pcmk__native_allocate: rsc1:0 allocation score on rhel7-5: -INFINITY
+pcmk__native_allocate: rsc1:1 allocation score on rhel7-1: -INFINITY
+pcmk__native_allocate: rsc1:1 allocation score on rhel7-2: 6
+pcmk__native_allocate: rsc1:1 allocation score on rhel7-3: -INFINITY
+pcmk__native_allocate: rsc1:1 allocation score on rhel7-4: -INFINITY
+pcmk__native_allocate: rsc1:1 allocation score on rhel7-5: -INFINITY
+pcmk__native_allocate: rsc1:2 allocation score on rhel7-1: -INFINITY
+pcmk__native_allocate: rsc1:2 allocation score on rhel7-2: -INFINITY
+pcmk__native_allocate: rsc1:2 allocation score on rhel7-3: -INFINITY
+pcmk__native_allocate: rsc1:2 allocation score on rhel7-4: -INFINITY
+pcmk__native_allocate: rsc1:2 allocation score on rhel7-5: -INFINITY
+pcmk__native_allocate: rsc1:3 allocation score on rhel7-1: -INFINITY
+pcmk__native_allocate: rsc1:3 allocation score on rhel7-2: -INFINITY
+pcmk__native_allocate: rsc1:3 allocation score on rhel7-3: -INFINITY
+pcmk__native_allocate: rsc1:3 allocation score on rhel7-4: -INFINITY
+pcmk__native_allocate: rsc1:3 allocation score on rhel7-5: -INFINITY
+pcmk__native_allocate: rsc1:4 allocation score on rhel7-1: -INFINITY
+pcmk__native_allocate: rsc1:4 allocation score on rhel7-2: -INFINITY
+pcmk__native_allocate: rsc1:4 allocation score on rhel7-3: -INFINITY
+pcmk__native_allocate: rsc1:4 allocation score on rhel7-4: -INFINITY
+pcmk__native_allocate: rsc1:4 allocation score on rhel7-5: -INFINITY
+pcmk__native_allocate: rsc2 allocation score on rhel7-1: 0
+pcmk__native_allocate: rsc2 allocation score on rhel7-2: 0
+pcmk__native_allocate: rsc2 allocation score on rhel7-3: 0
+pcmk__native_allocate: rsc2 allocation score on rhel7-4: 0
+pcmk__native_allocate: rsc2 allocation score on rhel7-5: 0
+rsc1:0 promotion score on rhel7-1: 10
+rsc1:1 promotion score on rhel7-2: 5
+rsc1:2 promotion score on none: 0
+rsc1:3 promotion score on none: 0
+rsc1:4 promotion score on none: 0
diff --git a/cts/scheduler/no_quorum_demote.summary b/cts/scheduler/no_quorum_demote.summary
new file mode 100644
index 0000000..9b69ca1
--- /dev/null
+++ b/cts/scheduler/no_quorum_demote.summary
@@ -0,0 +1,38 @@
+Using the original execution date of: 2020-06-17 17:26:35Z
+
+Current cluster status:
+Online: [ rhel7-1 rhel7-2 ]
+OFFLINE: [ rhel7-3 rhel7-4 rhel7-5 ]
+
+ Fencing (stonith:fence_xvm): Started rhel7-1
+ Clone Set: rsc1-clone [rsc1] (promotable)
+ Masters: [ rhel7-1 ]
+ Slaves: [ rhel7-2 ]
+ Stopped: [ rhel7-3 rhel7-4 rhel7-5 ]
+ rsc2 (ocf::pacemaker:Dummy): Started rhel7-2
+
+Transition Summary:
+ * Stop Fencing ( rhel7-1 ) due to no quorum
+ * Demote rsc1:0 ( Master -> Slave rhel7-1 )
+ * Stop rsc2 ( rhel7-2 ) due to no quorum
+
+Executing cluster transition:
+ * Resource action: Fencing stop on rhel7-1
+ * Resource action: rsc1 cancel=10000 on rhel7-1
+ * Pseudo action: rsc1-clone_demote_0
+ * Resource action: rsc2 stop on rhel7-2
+ * Resource action: rsc1 demote on rhel7-1
+ * Pseudo action: rsc1-clone_demoted_0
+ * Resource action: rsc1 monitor=11000 on rhel7-1
+Using the original execution date of: 2020-06-17 17:26:35Z
+
+Revised cluster status:
+Online: [ rhel7-1 rhel7-2 ]
+OFFLINE: [ rhel7-3 rhel7-4 rhel7-5 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+ Clone Set: rsc1-clone [rsc1] (promotable)
+ Slaves: [ rhel7-1 rhel7-2 ]
+ Stopped: [ rhel7-3 rhel7-4 rhel7-5 ]
+ rsc2 (ocf::pacemaker:Dummy): Stopped
+
diff --git a/cts/scheduler/no_quorum_demote.xml b/cts/scheduler/no_quorum_demote.xml
new file mode 100644
index 0000000..8497f0a
--- /dev/null
+++ b/cts/scheduler/no_quorum_demote.xml
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+