commit a67443d8580e2db2761dc4beebeaa5fbbd899da3
Author: Gao,Yan <ygao@suse.com>
Date:   Tue Jul 8 17:28:04 2014 +0800

    Test: pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources

diff --git a/pengine/regression.sh b/pengine/regression.sh
index 94f097b..784734a 100755
--- a/pengine/regression.sh
+++ b/pengine/regression.sh
@@ -540,6 +540,12 @@ do_test utilization-shuffle "Don't displace prmExPostgreSQLDB2 on act2, Start pr
 do_test load-stopped-loop "Avoid transition loop due to load_stopped (cl#5044)"
 
 echo ""
+do_test colocated-utilization-primitive-1 "Colocated Utilization - Primitive"
+do_test colocated-utilization-primitive-2 "Colocated Utilization - Choose the most capable node"
+do_test colocated-utilization-group "Colocated Utilization - Group"
+do_test colocated-utilization-clone "Colocated Utilization - Clone"
+
+echo ""
 do_test reprobe-target_rc "Ensure correct target_rc for reprobe of inactive resources"
 do_test node-maintenance-1 "cl#5128 - Node maintenance"
 do_test node-maintenance-2 "cl#5128 - Node maintenance (coming out of maintenance mode)"
diff --git a/pengine/test10/colocated-utilization-clone.dot b/pengine/test10/colocated-utilization-clone.dot
new file mode 100644
index 0000000..3a84fa0
--- /dev/null
+++ b/pengine/test10/colocated-utilization-clone.dot
@@ -0,0 +1,106 @@
+digraph "g" {
+"clone1_running_0" -> "clone2_start_0" [ style = bold]
+"clone1_running_0" [ style=bold color="green" fontcolor="orange"]
+"clone1_start_0" -> "clone1_running_0" [ style = bold]
+"clone1_start_0" -> "rsc1:0_start_0 node2" [ style = bold]
+"clone1_start_0" -> "rsc1:1_start_0 node3" [ style = bold]
+"clone1_start_0" [ style=bold color="green" fontcolor="orange"]
+"clone2_running_0" -> "group2_start_0" [ style = bold]
+"clone2_running_0" [ style=bold color="green" fontcolor="orange"]
+"clone2_start_0" -> "clone2_running_0" [ style = bold]
+"clone2_start_0" -> "group1:0_start_0" [ style = bold]
+"clone2_start_0" -> "group1:1_start_0" [ style = bold]
+"clone2_start_0" [ style=bold color="green" fontcolor="orange"]
+"group1:0_running_0" -> "clone2_running_0" [ style = bold]
+"group1:0_running_0" [ style=bold color="green" fontcolor="orange"]
+"group1:0_start_0" -> "group1:0_running_0" [ style = bold]
+"group1:0_start_0" -> "rsc2:0_start_0 node3" [ style = bold]
+"group1:0_start_0" -> "rsc3:0_start_0 node3" [ style = bold]
+"group1:0_start_0" [ style=bold color="green" fontcolor="orange"]
+"group1:1_running_0" -> "clone2_running_0" [ style = bold]
+"group1:1_running_0" [ style=bold color="green" fontcolor="orange"]
+"group1:1_start_0" -> "group1:1_running_0" [ style = bold]
+"group1:1_start_0" -> "rsc2:1_start_0 node2" [ style = bold]
+"group1:1_start_0" -> "rsc3:1_start_0 node2" [ style = bold]
+"group1:1_start_0" [ style=bold color="green" fontcolor="orange"]
+"group2_running_0" [ style=bold color="green" fontcolor="orange"]
+"group2_start_0" -> "group2_running_0" [ style = bold]
+"group2_start_0" -> "rsc4_start_0 node3" [ style = bold]
+"group2_start_0" -> "rsc5_start_0 node3" [ style = bold]
+"group2_start_0" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node1 node1" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node2 node2" -> "rsc1:0_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc2:1_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc3:1_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node3 node3" -> "rsc1:1_start_0 node3" [ style = bold]
+"load_stopped_node3 node3" -> "rsc2:0_start_0 node3" [ style = bold]
+"load_stopped_node3 node3" -> "rsc3:0_start_0 node3" [ style = bold]
+"load_stopped_node3 node3" -> "rsc4_start_0 node3" [ style = bold]
+"load_stopped_node3 node3" -> "rsc5_start_0 node3" [ style = bold]
+"load_stopped_node3 node3" [ style=bold color="green" fontcolor="orange"]
+"probe_complete node1" -> "probe_complete" [ style = bold]
+"probe_complete node1" [ style=bold color="green" fontcolor="black"]
+"probe_complete node2" -> "probe_complete" [ style = bold]
+"probe_complete node2" [ style=bold color="green" fontcolor="black"]
+"probe_complete node3" -> "probe_complete" [ style = bold]
+"probe_complete node3" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "rsc1:0_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc1:1_start_0 node3" [ style = bold]
+"probe_complete" -> "rsc2:0_start_0 node3" [ style = bold]
+"probe_complete" -> "rsc2:1_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc3:0_start_0 node3" [ style = bold]
+"probe_complete" -> "rsc3:1_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc4_start_0 node3" [ style = bold]
+"probe_complete" -> "rsc5_start_0 node3" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+"rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc1:0_start_0 node2" -> "clone1_running_0" [ style = bold]
+"rsc1:0_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc1:1_monitor_0 node3" -> "probe_complete node3" [ style = bold]
+"rsc1:1_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc1:1_start_0 node3" -> "clone1_running_0" [ style = bold]
+"rsc1:1_start_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc2:0_monitor_0 node3" -> "probe_complete node3" [ style = bold]
+"rsc2:0_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc2:0_start_0 node3" -> "group1:0_running_0" [ style = bold]
+"rsc2:0_start_0 node3" -> "rsc3:0_start_0 node3" [ style = bold]
+"rsc2:0_start_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2:1_start_0 node2" -> "group1:1_running_0" [ style = bold]
+"rsc2:1_start_0 node2" -> "rsc3:1_start_0 node2" [ style = bold]
+"rsc2:1_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3:0_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc3:0_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc3:0_monitor_0 node3" -> "probe_complete node3" [ style = bold]
+"rsc3:0_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc3:0_start_0 node3" -> "group1:0_running_0" [ style = bold]
+"rsc3:0_start_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc3:1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc3:1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3:1_start_0 node2" -> "group1:1_running_0" [ style = bold]
+"rsc3:1_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc4_monitor_0 node3" -> "probe_complete node3" [ style = bold]
+"rsc4_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc4_start_0 node3" -> "group2_running_0" [ style = bold]
+"rsc4_start_0 node3" -> "rsc5_start_0 node3" [ style = bold]
+"rsc4_start_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc5_monitor_0 node3" -> "probe_complete node3" [ style = bold]
+"rsc5_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"rsc5_start_0 node3" -> "group2_running_0" [ style = bold]
+"rsc5_start_0 node3" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/colocated-utilization-clone.exp b/pengine/test10/colocated-utilization-clone.exp
new file mode 100644
index 0000000..f1cb2f2
--- /dev/null
+++ b/pengine/test10/colocated-utilization-clone.exp
@@ -0,0 +1,558 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY"  transition_id="0">
+  <synapse id="0">
+    <action_set>
+      <rsc_op id="24" operation="start" operation_key="rsc1:0_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" long-id="rsc1:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="clone1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="1">
+    <action_set>
+      <rsc_op id="13" operation="monitor" operation_key="rsc1:0_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" long-id="rsc1:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="2">
+    <action_set>
+      <rsc_op id="7" operation="monitor" operation_key="rsc1:0_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc1" long-id="rsc1:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <rsc_op id="25" operation="start" operation_key="rsc1:1_start_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc1" long-id="rsc1:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="clone1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="4">
+    <action_set>
+      <rsc_op id="19" operation="monitor" operation_key="rsc1:1_monitor_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc1" long-id="rsc1:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="5" priority="1000000">
+    <action_set>
+      <pseudo_event id="27" operation="running" operation_key="clone1_running_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="24" operation="start" operation_key="rsc1:0_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="25" operation="start" operation_key="rsc1:1_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="clone1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="6">
+    <action_set>
+      <pseudo_event id="26" operation="start" operation_key="clone1_start_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="7">
+    <action_set>
+      <pseudo_event id="33" operation="running" operation_key="group1:0_running_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="30" operation="start" operation_key="rsc2:0_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="31" operation="start" operation_key="rsc3:0_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="32" operation="start" operation_key="group1:0_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="8">
+    <action_set>
+      <pseudo_event id="32" operation="start" operation_key="group1:0_start_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="42" operation="start" operation_key="clone2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="9">
+    <action_set>
+      <rsc_op id="30" operation="start" operation_key="rsc2:0_start_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc2" long-id="rsc2:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="32" operation="start" operation_key="group1:0_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="10">
+    <action_set>
+      <rsc_op id="20" operation="monitor" operation_key="rsc2:0_monitor_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc2" long-id="rsc2:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="11">
+    <action_set>
+      <rsc_op id="8" operation="monitor" operation_key="rsc2:0_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc2" long-id="rsc2:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="12">
+    <action_set>
+      <rsc_op id="31" operation="start" operation_key="rsc3:0_start_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc3" long-id="rsc3:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="30" operation="start" operation_key="rsc2:0_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="32" operation="start" operation_key="group1:0_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="13">
+    <action_set>
+      <rsc_op id="21" operation="monitor" operation_key="rsc3:0_monitor_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc3" long-id="rsc3:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="14">
+    <action_set>
+      <rsc_op id="9" operation="monitor" operation_key="rsc3:0_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc3" long-id="rsc3:0" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="15">
+    <action_set>
+      <pseudo_event id="39" operation="running" operation_key="group1:1_running_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="36" operation="start" operation_key="rsc2:1_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="37" operation="start" operation_key="rsc3:1_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="38" operation="start" operation_key="group1:1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="16">
+    <action_set>
+      <pseudo_event id="38" operation="start" operation_key="group1:1_start_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="42" operation="start" operation_key="clone2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="17">
+    <action_set>
+      <rsc_op id="36" operation="start" operation_key="rsc2:1_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" long-id="rsc2:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="38" operation="start" operation_key="group1:1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="18">
+    <action_set>
+      <rsc_op id="14" operation="monitor" operation_key="rsc2:1_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" long-id="rsc2:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="19">
+    <action_set>
+      <rsc_op id="37" operation="start" operation_key="rsc3:1_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" long-id="rsc3:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="36" operation="start" operation_key="rsc2:1_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="38" operation="start" operation_key="group1:1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="20">
+    <action_set>
+      <rsc_op id="15" operation="monitor" operation_key="rsc3:1_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" long-id="rsc3:1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="21" priority="1000000">
+    <action_set>
+      <pseudo_event id="43" operation="running" operation_key="clone2_running_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="33" operation="running" operation_key="group1:0_running_0"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="39" operation="running" operation_key="group1:1_running_0"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="42" operation="start" operation_key="clone2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="22">
+    <action_set>
+      <pseudo_event id="42" operation="start" operation_key="clone2_start_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="27" operation="running" operation_key="clone1_running_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="23">
+    <action_set>
+      <pseudo_event id="49" operation="running" operation_key="group2_running_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="46" operation="start" operation_key="rsc4_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="47" operation="start" operation_key="rsc5_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="48" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="24">
+    <action_set>
+      <pseudo_event id="48" operation="start" operation_key="group2_start_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="43" operation="running" operation_key="clone2_running_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="25">
+    <action_set>
+      <rsc_op id="46" operation="start" operation_key="rsc4_start_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="48" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="26">
+    <action_set>
+      <rsc_op id="22" operation="monitor" operation_key="rsc4_monitor_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="27">
+    <action_set>
+      <rsc_op id="16" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="28">
+    <action_set>
+      <rsc_op id="10" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="29">
+    <action_set>
+      <rsc_op id="47" operation="start" operation_key="rsc5_start_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="46" operation="start" operation_key="rsc4_start_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="48" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="30">
+    <action_set>
+      <rsc_op id="23" operation="monitor" operation_key="rsc5_monitor_0" on_node="node3" on_node_uuid="node3">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="31">
+    <action_set>
+      <rsc_op id="17" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="32">
+    <action_set>
+      <rsc_op id="11" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="33" priority="1000000">
+    <action_set>
+      <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="19" operation="monitor" operation_key="rsc1:1_monitor_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="20" operation="monitor" operation_key="rsc2:0_monitor_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="21" operation="monitor" operation_key="rsc3:0_monitor_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="22" operation="monitor" operation_key="rsc4_monitor_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="23" operation="monitor" operation_key="rsc5_monitor_0" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="34" priority="1000000">
+    <action_set>
+      <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="13" operation="monitor" operation_key="rsc1:0_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="14" operation="monitor" operation_key="rsc2:1_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="15" operation="monitor" operation_key="rsc3:1_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="16" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="17" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="35" priority="1000000">
+    <action_set>
+      <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="7" operation="monitor" operation_key="rsc1:0_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="8" operation="monitor" operation_key="rsc2:0_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="9" operation="monitor" operation_key="rsc3:0_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="10" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="11" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="36">
+    <action_set>
+      <pseudo_event id="5" operation="probe_complete" operation_key="probe_complete">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="37">
+    <action_set>
+      <pseudo_event id="4" operation="load_stopped_node1" operation_key="load_stopped_node1">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="38">
+    <action_set>
+      <pseudo_event id="3" operation="load_stopped_node3" operation_key="load_stopped_node3">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="39">
+    <action_set>
+      <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+</transition_graph>
diff --git a/pengine/test10/colocated-utilization-clone.scores b/pengine/test10/colocated-utilization-clone.scores
new file mode 100644
index 0000000..36139a8
--- /dev/null
+++ b/pengine/test10/colocated-utilization-clone.scores
@@ -0,0 +1,82 @@
+Allocation scores:
+clone_color: clone1 allocation score on node1: 0
+clone_color: clone1 allocation score on node2: 0
+clone_color: clone1 allocation score on node3: 0
+clone_color: clone2 allocation score on node1: 0
+clone_color: clone2 allocation score on node2: 0
+clone_color: clone2 allocation score on node3: 0
+clone_color: group1:0 allocation score on node1: 0
+clone_color: group1:0 allocation score on node2: 0
+clone_color: group1:0 allocation score on node3: 0
+clone_color: group1:1 allocation score on node1: 0
+clone_color: group1:1 allocation score on node2: 0
+clone_color: group1:1 allocation score on node3: 0
+clone_color: rsc1:0 allocation score on node1: 0
+clone_color: rsc1:0 allocation score on node2: 0
+clone_color: rsc1:0 allocation score on node3: 0
+clone_color: rsc1:1 allocation score on node1: 0
+clone_color: rsc1:1 allocation score on node2: 0
+clone_color: rsc1:1 allocation score on node3: 0
+clone_color: rsc2:0 allocation score on node1: 0
+clone_color: rsc2:0 allocation score on node2: 0
+clone_color: rsc2:0 allocation score on node3: 0
+clone_color: rsc2:1 allocation score on node1: 0
+clone_color: rsc2:1 allocation score on node2: 0
+clone_color: rsc2:1 allocation score on node3: 0
+clone_color: rsc3:0 allocation score on node1: 0
+clone_color: rsc3:0 allocation score on node2: 0
+clone_color: rsc3:0 allocation score on node3: 0
+clone_color: rsc3:1 allocation score on node1: 0
+clone_color: rsc3:1 allocation score on node2: 0
+clone_color: rsc3:1 allocation score on node3: 0
+group_color: group1:0 allocation score on node1: 0
+group_color: group1:0 allocation score on node2: 0
+group_color: group1:0 allocation score on node3: 0
+group_color: group1:1 allocation score on node1: 0
+group_color: group1:1 allocation score on node2: 0
+group_color: group1:1 allocation score on node3: -INFINITY
+group_color: group2 allocation score on node1: 0
+group_color: group2 allocation score on node2: 0
+group_color: group2 allocation score on node3: 0
+group_color: rsc2:0 allocation score on node1: 0
+group_color: rsc2:0 allocation score on node2: 0
+group_color: rsc2:0 allocation score on node3: 0
+group_color: rsc2:1 allocation score on node1: 0
+group_color: rsc2:1 allocation score on node2: 0
+group_color: rsc2:1 allocation score on node3: -INFINITY
+group_color: rsc3:0 allocation score on node1: 0
+group_color: rsc3:0 allocation score on node2: 0
+group_color: rsc3:0 allocation score on node3: 0
+group_color: rsc3:1 allocation score on node1: 0
+group_color: rsc3:1 allocation score on node2: 0
+group_color: rsc3:1 allocation score on node3: -INFINITY
+group_color: rsc4 allocation score on node1: 0
+group_color: rsc4 allocation score on node2: 0
+group_color: rsc4 allocation score on node3: 0
+group_color: rsc5 allocation score on node1: 0
+group_color: rsc5 allocation score on node2: 0
+group_color: rsc5 allocation score on node3: 0
+native_color: rsc1:0 allocation score on node1: 0
+native_color: rsc1:0 allocation score on node2: 0
+native_color: rsc1:0 allocation score on node3: 0
+native_color: rsc1:1 allocation score on node1: 0
+native_color: rsc1:1 allocation score on node2: -INFINITY
+native_color: rsc1:1 allocation score on node3: 0
+native_color: rsc2:0 allocation score on node1: -INFINITY
+native_color: rsc2:0 allocation score on node2: 0
+native_color: rsc2:0 allocation score on node3: 0
+native_color: rsc2:1 allocation score on node1: -INFINITY
+native_color: rsc2:1 allocation score on node2: 0
+native_color: rsc2:1 allocation score on node3: -INFINITY
+native_color: rsc3:0 allocation score on node1: -INFINITY
+native_color: rsc3:0 allocation score on node2: -INFINITY
+native_color: rsc3:0 allocation score on node3: 0
+native_color: rsc3:1 allocation score on node1: -INFINITY
+native_color: rsc3:1 allocation score on node2: 0
+native_color: rsc3:1 allocation score on node3: -INFINITY
+native_color: rsc4 allocation score on node1: -INFINITY
+native_color: rsc4 allocation score on node2: 0
+native_color: rsc4 allocation score on node3: 0
+native_color: rsc5 allocation score on node1: -INFINITY
+native_color: rsc5 allocation score on node2: -INFINITY
+native_color: rsc5 allocation score on node3: 0
diff --git a/pengine/test10/colocated-utilization-clone.summary b/pengine/test10/colocated-utilization-clone.summary
new file mode 100644
index 0000000..8c6b0eb
--- /dev/null
+++ b/pengine/test10/colocated-utilization-clone.summary
@@ -0,0 +1,72 @@
+
+Current cluster status:
+Online: [ node1 node2 node3 ]
+
+ Clone Set: clone1 [rsc1]
+     Stopped: [ node1 node2 node3 ]
+ Clone Set: clone2 [group1]
+     Stopped: [ node1 node2 node3 ]
+ Resource Group: group2
+     rsc4	(ocf::pacemaker:Dummy):	Stopped 
+     rsc5	(ocf::pacemaker:Dummy):	Stopped 
+
+Transition Summary:
+ * Start   rsc1:0	(node2)
+ * Start   rsc1:1	(node3)
+ * Start   rsc2:0	(node3)
+ * Start   rsc3:0	(node3)
+ * Start   rsc2:1	(node2)
+ * Start   rsc3:1	(node2)
+ * Start   rsc4	(node3)
+ * Start   rsc5	(node3)
+
+Executing cluster transition:
+ * Resource action: rsc1:0          monitor on node2
+ * Resource action: rsc1:0          monitor on node1
+ * Resource action: rsc1:1          monitor on node3
+ * Pseudo action:   clone1_start_0
+ * Resource action: rsc2:0          monitor on node3
+ * Resource action: rsc2:0          monitor on node1
+ * Resource action: rsc3:0          monitor on node3
+ * Resource action: rsc3:0          monitor on node1
+ * Resource action: rsc2:1          monitor on node2
+ * Resource action: rsc3:1          monitor on node2
+ * Resource action: rsc4            monitor on node3
+ * Resource action: rsc4            monitor on node2
+ * Resource action: rsc4            monitor on node1
+ * Resource action: rsc5            monitor on node3
+ * Resource action: rsc5            monitor on node2
+ * Resource action: rsc5            monitor on node1
+ * Pseudo action:   probe_complete
+ * Pseudo action:   load_stopped_node1
+ * Pseudo action:   load_stopped_node3
+ * Pseudo action:   load_stopped_node2
+ * Resource action: rsc1:0          start on node2
+ * Resource action: rsc1:1          start on node3
+ * Pseudo action:   clone1_running_0
+ * Pseudo action:   clone2_start_0
+ * Pseudo action:   group1:0_start_0
+ * Resource action: rsc2:0          start on node3
+ * Resource action: rsc3:0          start on node3
+ * Pseudo action:   group1:1_start_0
+ * Resource action: rsc2:1          start on node2
+ * Resource action: rsc3:1          start on node2
+ * Pseudo action:   group1:0_running_0
+ * Pseudo action:   group1:1_running_0
+ * Pseudo action:   clone2_running_0
+ * Pseudo action:   group2_start_0
+ * Resource action: rsc4            start on node3
+ * Resource action: rsc5            start on node3
+ * Pseudo action:   group2_running_0
+
+Revised cluster status:
+Online: [ node1 node2 node3 ]
+
+ Clone Set: clone1 [rsc1]
+     Started: [ node2 node3 ]
+ Clone Set: clone2 [group1]
+     Started: [ node2 node3 ]
+ Resource Group: group2
+     rsc4	(ocf::pacemaker:Dummy):	Started node3 
+     rsc5	(ocf::pacemaker:Dummy):	Started node3 
+
diff --git a/pengine/test10/colocated-utilization-clone.xml b/pengine/test10/colocated-utilization-clone.xml
new file mode 100644
index 0000000..fc3d55a
--- /dev/null
+++ b/pengine/test10/colocated-utilization-clone.xml
@@ -0,0 +1,79 @@
+<cib epoch="1" num_updates="36" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Fri Dec  7 15:42:31 2012" have-quorum="1">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
+        <nvpair id="cib-bootstrap-options-placement-strategy" name="placement-strategy" value="utilization"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="node1" uname="node1">
+        <utilization id="node1-utlization">
+          <nvpair id="node1-utlization-cpu" name="cpu" value="4"/>
+        </utilization>
+      </node>
+      <node id="node2" uname="node2">
+        <utilization id="node2-utlization">
+          <nvpair id="node2-utlization-cpu" name="cpu" value="8"/>
+        </utilization>
+      </node>
+      <node id="node3" uname="node3">
+        <utilization id="node3-utlization">
+          <nvpair id="node3-utlization-cpu" name="cpu" value="10"/>
+        </utilization>
+      </node>
+    </nodes>
+    <resources>
+      <clone id="clone1">
+        <meta_attributes id="clone1-meta_attributes">
+          <nvpair id="clone1-meta_attributes-clone-max" name="clone-max" value="2"/>
+        </meta_attributes>
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc1-utlization">
+            <nvpair id="rsc1-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+      </clone>
+      <clone id="clone2">
+        <meta_attributes id="clone2-meta_attributes">
+          <nvpair id="clone2-meta_attributes-clone-max" name="clone-max" value="2"/>
+        </meta_attributes>
+        <group id="group1">
+          <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy">
+            <utilization id="rsc2-utlization">
+              <nvpair id="rsc2-utlization-cpu" name="cpu" value="2"/>
+            </utilization>
+          </primitive>
+          <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy">
+            <utilization id="rsc3-utlization">
+              <nvpair id="rsc3-utlization-cpu" name="cpu" value="2"/>
+            </utilization>
+          </primitive>
+        </group>
+      </clone>
+      <group id="group2">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc4-utlization">
+            <nvpair id="rsc4-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc5-utlization">
+            <nvpair id="rsc5-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+      </group>
+    </resources>
+    <constraints>
+      <rsc_colocation id="clone2-with-clone1" rsc="clone2" with-rsc="clone1" score="INFINITY"/>
+      <rsc_order id="clone1-before-clone2" first="clone1" then="clone2" kind="Mandatory"/>
+      <rsc_colocation id="group2-with-clone2" rsc="group2" with-rsc="clone2" score="INFINITY"/>
+      <rsc_order id="clone2-before-group2" first="clone2" then="group2" kind="Mandatory"/>
+    </constraints>
+  </configuration>
+  <status>
+    <node_state id="node1" uname="node1" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+    <node_state id="node2" uname="node2" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+    <node_state id="node3" uname="node3" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+  </status>
+</cib>
diff --git a/pengine/test10/colocated-utilization-group.dot b/pengine/test10/colocated-utilization-group.dot
new file mode 100644
index 0000000..dc5bd89
--- /dev/null
+++ b/pengine/test10/colocated-utilization-group.dot
@@ -0,0 +1,60 @@
+digraph "g" {
+"group1_running_0" [ style=bold color="green" fontcolor="orange"]
+"group1_start_0" -> "group1_running_0" [ style = bold]
+"group1_start_0" -> "rsc2_start_0 node2" [ style = bold]
+"group1_start_0" -> "rsc3_start_0 node2" [ style = bold]
+"group1_start_0" [ style=bold color="green" fontcolor="orange"]
+"group2_running_0" [ style=bold color="green" fontcolor="orange"]
+"group2_start_0" -> "group2_running_0" [ style = bold]
+"group2_start_0" -> "rsc4_start_0 node2" [ style = bold]
+"group2_start_0" -> "rsc5_start_0 node2" [ style = bold]
+"group2_start_0" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node1 node1" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node2 node2" -> "rsc1_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc2_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc3_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc4_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc5_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" [ style=bold color="green" fontcolor="orange"]
+"probe_complete node1" -> "probe_complete" [ style = bold]
+"probe_complete node1" [ style=bold color="green" fontcolor="black"]
+"probe_complete node2" -> "probe_complete" [ style = bold]
+"probe_complete node2" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc2_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc3_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc4_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc5_start_0 node2" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+"rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc1_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2_start_0 node2" -> "group1_running_0" [ style = bold]
+"rsc2_start_0 node2" -> "rsc3_start_0 node2" [ style = bold]
+"rsc2_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_start_0 node2" -> "group1_running_0" [ style = bold]
+"rsc3_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc4_start_0 node2" -> "group2_running_0" [ style = bold]
+"rsc4_start_0 node2" -> "rsc5_start_0 node2" [ style = bold]
+"rsc4_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc5_start_0 node2" -> "group2_running_0" [ style = bold]
+"rsc5_start_0 node2" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/colocated-utilization-group.exp b/pengine/test10/colocated-utilization-group.exp
new file mode 100644
index 0000000..3d814f6
--- /dev/null
+++ b/pengine/test10/colocated-utilization-group.exp
@@ -0,0 +1,321 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY"  transition_id="0">
+  <synapse id="0">
+    <action_set>
+      <rsc_op id="17" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="1">
+    <action_set>
+      <rsc_op id="12" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="2">
+    <action_set>
+      <rsc_op id="6" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <pseudo_event id="21" operation="running" operation_key="group1_running_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="18" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="19" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="20" operation="start" operation_key="group1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="4">
+    <action_set>
+      <pseudo_event id="20" operation="start" operation_key="group1_start_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="5">
+    <action_set>
+      <rsc_op id="18" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="20" operation="start" operation_key="group1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="6">
+    <action_set>
+      <rsc_op id="13" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="7">
+    <action_set>
+      <rsc_op id="7" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="8">
+    <action_set>
+      <rsc_op id="19" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="18" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="20" operation="start" operation_key="group1_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="9">
+    <action_set>
+      <rsc_op id="14" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="10">
+    <action_set>
+      <rsc_op id="8" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="11">
+    <action_set>
+      <pseudo_event id="27" operation="running" operation_key="group2_running_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="24" operation="start" operation_key="rsc4_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="25" operation="start" operation_key="rsc5_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="12">
+    <action_set>
+      <pseudo_event id="26" operation="start" operation_key="group2_start_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="13">
+    <action_set>
+      <rsc_op id="24" operation="start" operation_key="rsc4_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="14">
+    <action_set>
+      <rsc_op id="15" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="15">
+    <action_set>
+      <rsc_op id="9" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="16">
+    <action_set>
+      <rsc_op id="25" operation="start" operation_key="rsc5_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="24" operation="start" operation_key="rsc4_start_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="start" operation_key="group2_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="17">
+    <action_set>
+      <rsc_op id="16" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="18">
+    <action_set>
+      <rsc_op id="10" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="19" priority="1000000">
+    <action_set>
+      <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="12" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="13" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="14" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="15" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="16" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="20" priority="1000000">
+    <action_set>
+      <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="6" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="7" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="8" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="9" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="10" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="21">
+    <action_set>
+      <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="22">
+    <action_set>
+      <pseudo_event id="3" operation="load_stopped_node1" operation_key="load_stopped_node1">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="23">
+    <action_set>
+      <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+</transition_graph>
diff --git a/pengine/test10/colocated-utilization-group.scores b/pengine/test10/colocated-utilization-group.scores
new file mode 100644
index 0000000..fe0bb52
--- /dev/null
+++ b/pengine/test10/colocated-utilization-group.scores
@@ -0,0 +1,23 @@
+Allocation scores:
+group_color: group1 allocation score on node1: 0
+group_color: group1 allocation score on node2: 0
+group_color: group2 allocation score on node1: 0
+group_color: group2 allocation score on node2: 0
+group_color: rsc2 allocation score on node1: 0
+group_color: rsc2 allocation score on node2: 0
+group_color: rsc3 allocation score on node1: 0
+group_color: rsc3 allocation score on node2: 0
+group_color: rsc4 allocation score on node1: 0
+group_color: rsc4 allocation score on node2: 0
+group_color: rsc5 allocation score on node1: 0
+group_color: rsc5 allocation score on node2: 0
+native_color: rsc1 allocation score on node1: 0
+native_color: rsc1 allocation score on node2: 0
+native_color: rsc2 allocation score on node1: -INFINITY
+native_color: rsc2 allocation score on node2: 0
+native_color: rsc3 allocation score on node1: -INFINITY
+native_color: rsc3 allocation score on node2: 0
+native_color: rsc4 allocation score on node1: -INFINITY
+native_color: rsc4 allocation score on node2: 0
+native_color: rsc5 allocation score on node1: -INFINITY
+native_color: rsc5 allocation score on node2: 0
diff --git a/pengine/test10/colocated-utilization-group.summary b/pengine/test10/colocated-utilization-group.summary
new file mode 100644
index 0000000..794960d
--- /dev/null
+++ b/pengine/test10/colocated-utilization-group.summary
@@ -0,0 +1,54 @@
+
+Current cluster status:
+Online: [ node1 node2 ]
+
+ rsc1	(ocf::pacemaker:Dummy):	Stopped 
+ Resource Group: group1
+     rsc2	(ocf::pacemaker:Dummy):	Stopped 
+     rsc3	(ocf::pacemaker:Dummy):	Stopped 
+ Resource Group: group2
+     rsc4	(ocf::pacemaker:Dummy):	Stopped 
+     rsc5	(ocf::pacemaker:Dummy):	Stopped 
+
+Transition Summary:
+ * Start   rsc1	(node2)
+ * Start   rsc2	(node2)
+ * Start   rsc3	(node2)
+ * Start   rsc4	(node2)
+ * Start   rsc5	(node2)
+
+Executing cluster transition:
+ * Resource action: rsc1            monitor on node2
+ * Resource action: rsc1            monitor on node1
+ * Pseudo action:   group1_start_0
+ * Resource action: rsc2            monitor on node2
+ * Resource action: rsc2            monitor on node1
+ * Resource action: rsc3            monitor on node2
+ * Resource action: rsc3            monitor on node1
+ * Pseudo action:   group2_start_0
+ * Resource action: rsc4            monitor on node2
+ * Resource action: rsc4            monitor on node1
+ * Resource action: rsc5            monitor on node2
+ * Resource action: rsc5            monitor on node1
+ * Pseudo action:   probe_complete
+ * Pseudo action:   load_stopped_node1
+ * Pseudo action:   load_stopped_node2
+ * Resource action: rsc1            start on node2
+ * Resource action: rsc2            start on node2
+ * Resource action: rsc3            start on node2
+ * Resource action: rsc4            start on node2
+ * Resource action: rsc5            start on node2
+ * Pseudo action:   group1_running_0
+ * Pseudo action:   group2_running_0
+
+Revised cluster status:
+Online: [ node1 node2 ]
+
+ rsc1	(ocf::pacemaker:Dummy):	Started node2 
+ Resource Group: group1
+     rsc2	(ocf::pacemaker:Dummy):	Started node2 
+     rsc3	(ocf::pacemaker:Dummy):	Started node2 
+ Resource Group: group2
+     rsc4	(ocf::pacemaker:Dummy):	Started node2 
+     rsc5	(ocf::pacemaker:Dummy):	Started node2 
+
diff --git a/pengine/test10/colocated-utilization-group.xml b/pengine/test10/colocated-utilization-group.xml
new file mode 100644
index 0000000..4b447e0
--- /dev/null
+++ b/pengine/test10/colocated-utilization-group.xml
@@ -0,0 +1,62 @@
+<cib epoch="1" num_updates="36" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Fri Dec  7 15:42:31 2012" have-quorum="1">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
+        <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/>
+        <nvpair id="cib-bootstrap-options-placement-strategy" name="placement-strategy" value="utilization"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="node1" uname="node1">
+        <utilization id="node1-utlization">
+          <nvpair id="node1-utlization-cpu" name="cpu" value="8"/>
+        </utilization>
+      </node>
+      <node id="node2" uname="node2">
+        <utilization id="node2-utlization">
+          <nvpair id="node2-utlization-cpu" name="cpu" value="10"/>
+        </utilization>
+      </node>
+    </nodes>
+    <resources>
+      <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc1-utlization">
+          <nvpair id="rsc1-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+      <group id="group1">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc2-utlization">
+            <nvpair id="rsc2-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc3-utlization">
+            <nvpair id="rsc3-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+      </group>
+      <group id="group2">
+        <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc4-utlization">
+            <nvpair id="rsc4-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+        <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy">
+          <utilization id="rsc5-utlization">
+            <nvpair id="rsc5-utlization-cpu" name="cpu" value="2"/>
+          </utilization>
+        </primitive>
+      </group>
+    </resources>
+    <constraints>
+      <rsc_colocation id="group1-with-rsc1" rsc="group1" with-rsc="rsc1" score="INFINITY"/>
+      <rsc_colocation id="group2-with-group1" rsc="group2" with-rsc="group1" score="INFINITY"/>
+    </constraints>
+  </configuration>
+  <status>
+    <node_state id="node1" uname="node1" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+    <node_state id="node2" uname="node2" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+  </status>
+</cib>
diff --git a/pengine/test10/colocated-utilization-primitive-1.dot b/pengine/test10/colocated-utilization-primitive-1.dot
new file mode 100644
index 0000000..ed45a91
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-1.dot
@@ -0,0 +1,30 @@
+digraph "g" {
+"load_stopped_node1 node1" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node2 node2" -> "rsc1_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc2_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc3_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" [ style=bold color="green" fontcolor="orange"]
+"probe_complete node1" -> "probe_complete" [ style = bold]
+"probe_complete node1" [ style=bold color="green" fontcolor="black"]
+"probe_complete node2" -> "probe_complete" [ style = bold]
+"probe_complete node2" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc2_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc3_start_0 node2" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+"rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc1_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_start_0 node2" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/colocated-utilization-primitive-1.exp b/pengine/test10/colocated-utilization-primitive-1.exp
new file mode 100644
index 0000000..8bee496
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-1.exp
@@ -0,0 +1,171 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY"  transition_id="0">
+  <synapse id="0">
+    <action_set>
+      <rsc_op id="13" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="1">
+    <action_set>
+      <rsc_op id="10" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="2">
+    <action_set>
+      <rsc_op id="6" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <rsc_op id="14" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="4">
+    <action_set>
+      <rsc_op id="11" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="5">
+    <action_set>
+      <rsc_op id="7" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="6">
+    <action_set>
+      <rsc_op id="15" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="7">
+    <action_set>
+      <rsc_op id="12" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="8">
+    <action_set>
+      <rsc_op id="8" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="9" priority="1000000">
+    <action_set>
+      <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="10" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="11" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="12" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="10" priority="1000000">
+    <action_set>
+      <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="6" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="7" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="8" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="11">
+    <action_set>
+      <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="12">
+    <action_set>
+      <pseudo_event id="3" operation="load_stopped_node1" operation_key="load_stopped_node1">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="13">
+    <action_set>
+      <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+</transition_graph>
diff --git a/pengine/test10/colocated-utilization-primitive-1.scores b/pengine/test10/colocated-utilization-primitive-1.scores
new file mode 100644
index 0000000..fb6da06
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-1.scores
@@ -0,0 +1,7 @@
+Allocation scores:
+native_color: rsc1 allocation score on node1: 0
+native_color: rsc1 allocation score on node2: 0
+native_color: rsc2 allocation score on node1: -INFINITY
+native_color: rsc2 allocation score on node2: 0
+native_color: rsc3 allocation score on node1: -INFINITY
+native_color: rsc3 allocation score on node2: 0
diff --git a/pengine/test10/colocated-utilization-primitive-1.summary b/pengine/test10/colocated-utilization-primitive-1.summary
new file mode 100644
index 0000000..38a2fbe
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-1.summary
@@ -0,0 +1,34 @@
+
+Current cluster status:
+Online: [ node1 node2 ]
+
+ rsc1	(ocf::pacemaker:Dummy):	Stopped 
+ rsc2	(ocf::pacemaker:Dummy):	Stopped 
+ rsc3	(ocf::pacemaker:Dummy):	Stopped 
+
+Transition Summary:
+ * Start   rsc1	(node2)
+ * Start   rsc2	(node2)
+ * Start   rsc3	(node2)
+
+Executing cluster transition:
+ * Resource action: rsc1            monitor on node2
+ * Resource action: rsc1            monitor on node1
+ * Resource action: rsc2            monitor on node2
+ * Resource action: rsc2            monitor on node1
+ * Resource action: rsc3            monitor on node2
+ * Resource action: rsc3            monitor on node1
+ * Pseudo action:   probe_complete
+ * Pseudo action:   load_stopped_node1
+ * Pseudo action:   load_stopped_node2
+ * Resource action: rsc1            start on node2
+ * Resource action: rsc2            start on node2
+ * Resource action: rsc3            start on node2
+
+Revised cluster status:
+Online: [ node1 node2 ]
+
+ rsc1	(ocf::pacemaker:Dummy):	Started node2 
+ rsc2	(ocf::pacemaker:Dummy):	Started node2 
+ rsc3	(ocf::pacemaker:Dummy):	Started node2 
+
diff --git a/pengine/test10/colocated-utilization-primitive-1.xml b/pengine/test10/colocated-utilization-primitive-1.xml
new file mode 100644
index 0000000..f3ef3c5
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-1.xml
@@ -0,0 +1,48 @@
+<cib epoch="1" num_updates="36" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Fri Dec  7 15:42:31 2012" have-quorum="1">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
+        <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/>
+        <nvpair id="cib-bootstrap-options-placement-strategy" name="placement-strategy" value="utilization"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="node1" uname="node1">
+        <utilization id="node1-utlization">
+          <nvpair id="node1-utlization-cpu" name="cpu" value="4"/>
+        </utilization>
+      </node>
+      <node id="node2" uname="node2">
+        <utilization id="node2-utlization">
+          <nvpair id="node2-utlization-cpu" name="cpu" value="6"/>
+        </utilization>
+      </node>
+    </nodes>
+    <resources>
+      <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc1-utlization">
+          <nvpair id="rsc1-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+      <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc2-utlization">
+          <nvpair id="rsc2-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+      <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc3-utlization">
+          <nvpair id="rsc3-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+    </resources>
+    <constraints>
+      <rsc_colocation id="rsc2-with-rsc1" rsc="rsc2" with-rsc="rsc1" score="INFINITY"/>
+      <rsc_colocation id="rsc3-with-rsc1" rsc="rsc3" with-rsc="rsc1" score="INFINITY"/>
+    </constraints>
+  </configuration>
+  <status>
+    <node_state id="node1" uname="node1" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+    <node_state id="node2" uname="node2" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+  </status>
+</cib>
diff --git a/pengine/test10/colocated-utilization-primitive-2.dot b/pengine/test10/colocated-utilization-primitive-2.dot
new file mode 100644
index 0000000..c7a4754
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-2.dot
@@ -0,0 +1,27 @@
+digraph "g" {
+"load_stopped_node1 node1" [ style=bold color="green" fontcolor="orange"]
+"load_stopped_node2 node2" -> "rsc1_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" -> "rsc3_start_0 node2" [ style = bold]
+"load_stopped_node2 node2" [ style=bold color="green" fontcolor="orange"]
+"probe_complete node1" -> "probe_complete" [ style = bold]
+"probe_complete node1" [ style=bold color="green" fontcolor="black"]
+"probe_complete node2" -> "probe_complete" [ style = bold]
+"probe_complete node2" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
+"probe_complete" -> "rsc3_start_0 node2" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+"rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc1_start_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold]
+"rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold]
+"rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"rsc3_start_0 node2" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/colocated-utilization-primitive-2.exp b/pengine/test10/colocated-utilization-primitive-2.exp
new file mode 100644
index 0000000..b4dd1fc
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-2.exp
@@ -0,0 +1,155 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY"  transition_id="0">
+  <synapse id="0" priority="1">
+    <action_set>
+      <rsc_op id="13" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="1" priority="1">
+    <action_set>
+      <rsc_op id="10" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="2" priority="1">
+    <action_set>
+      <rsc_op id="6" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <rsc_op id="14" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="4">
+    <action_set>
+      <rsc_op id="11" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="5">
+    <action_set>
+      <rsc_op id="7" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="6">
+    <action_set>
+      <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="7">
+    <action_set>
+      <rsc_op id="8" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1">
+        <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="8" priority="1000000">
+    <action_set>
+      <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="10" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="11" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="9" priority="1000000">
+    <action_set>
+      <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="6" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="7" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="8" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="10">
+    <action_set>
+      <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="11">
+    <action_set>
+      <pseudo_event id="3" operation="load_stopped_node1" operation_key="load_stopped_node1">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="12">
+    <action_set>
+      <pseudo_event id="2" operation="load_stopped_node2" operation_key="load_stopped_node2">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+</transition_graph>
diff --git a/pengine/test10/colocated-utilization-primitive-2.scores b/pengine/test10/colocated-utilization-primitive-2.scores
new file mode 100644
index 0000000..fb6da06
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-2.scores
@@ -0,0 +1,7 @@
+Allocation scores:
+native_color: rsc1 allocation score on node1: 0
+native_color: rsc1 allocation score on node2: 0
+native_color: rsc2 allocation score on node1: -INFINITY
+native_color: rsc2 allocation score on node2: 0
+native_color: rsc3 allocation score on node1: -INFINITY
+native_color: rsc3 allocation score on node2: 0
diff --git a/pengine/test10/colocated-utilization-primitive-2.summary b/pengine/test10/colocated-utilization-primitive-2.summary
new file mode 100644
index 0000000..61446b1
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-2.summary
@@ -0,0 +1,32 @@
+
+Current cluster status:
+Online: [ node1 node2 ]
+
+ rsc3	(ocf::pacemaker:Dummy):	Stopped 
+ rsc1	(ocf::pacemaker:Dummy):	Stopped 
+ rsc2	(ocf::pacemaker:Dummy):	Stopped 
+
+Transition Summary:
+ * Start   rsc3	(node2)
+ * Start   rsc1	(node2)
+
+Executing cluster transition:
+ * Resource action: rsc3            monitor on node2
+ * Resource action: rsc3            monitor on node1
+ * Resource action: rsc1            monitor on node2
+ * Resource action: rsc1            monitor on node1
+ * Resource action: rsc2            monitor on node2
+ * Resource action: rsc2            monitor on node1
+ * Pseudo action:   probe_complete
+ * Pseudo action:   load_stopped_node1
+ * Pseudo action:   load_stopped_node2
+ * Resource action: rsc3            start on node2
+ * Resource action: rsc1            start on node2
+
+Revised cluster status:
+Online: [ node1 node2 ]
+
+ rsc3	(ocf::pacemaker:Dummy):	Started node2 
+ rsc1	(ocf::pacemaker:Dummy):	Started node2 
+ rsc2	(ocf::pacemaker:Dummy):	Stopped 
+
diff --git a/pengine/test10/colocated-utilization-primitive-2.xml b/pengine/test10/colocated-utilization-primitive-2.xml
new file mode 100644
index 0000000..eab8781
--- /dev/null
+++ b/pengine/test10/colocated-utilization-primitive-2.xml
@@ -0,0 +1,51 @@
+<cib epoch="1" num_updates="36" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Fri Dec  7 15:42:31 2012" have-quorum="1">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/>
+        <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/>
+        <nvpair id="cib-bootstrap-options-placement-strategy" name="placement-strategy" value="utilization"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="node1" uname="node1">
+        <utilization id="node1-utlization">
+          <nvpair id="node1-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </node>
+      <node id="node2" uname="node2">
+        <utilization id="node2-utlization">
+          <nvpair id="node2-utlization-cpu" name="cpu" value="4"/>
+        </utilization>
+      </node>
+    </nodes>
+    <resources>
+      <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc1-utlization">
+          <nvpair id="rsc1-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+      <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc2-utlization">
+          <nvpair id="rsc2-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+      </primitive>
+      <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy">
+        <utilization id="rsc3-utlization">
+          <nvpair id="rsc3-utlization-cpu" name="cpu" value="2"/>
+        </utilization>
+        <meta_attributes id="rsc3-meta_attributes">
+          <nvpair id="rsc3-meta_attributes-priority" name="priority" value="1"/>
+        </meta_attributes>
+      </primitive>
+    </resources>
+    <constraints>
+      <rsc_colocation id="rsc2-with-rsc1" rsc="rsc2" with-rsc="rsc1" score="INFINITY"/>
+      <rsc_colocation id="rsc3-with-rsc1" rsc="rsc3" with-rsc="rsc1" score="INFINITY"/>
+    </constraints>
+  </configuration>
+  <status>
+    <node_state id="node1" uname="node1" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+    <node_state id="node2" uname="node2" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate"/>
+  </status>
+</cib>
