diff --git a/core/common/src/main/java/org/onosproject/common/DefaultTopology.java b/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
index 5b161ff..a2bc4a5 100644
--- a/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
+++ b/core/common/src/main/java/org/onosproject/common/DefaultTopology.java
@@ -519,7 +519,7 @@
     private TopologyVertex findRoot(Set<TopologyVertex> vertexSet) {
         TopologyVertex minVertex = null;
         for (TopologyVertex vertex : vertexSet) {
-            if ((minVertex == null) || (minVertex.deviceId()
+            if ((minVertex == null) || (vertex.deviceId()
                     .toString().compareTo(minVertex.deviceId().toString()) < 0)) {
                 minVertex = vertex;
             }
diff --git a/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java b/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
index e7dcd90..2bf8cb7 100644
--- a/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
+++ b/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
@@ -29,9 +29,11 @@
 import org.onosproject.net.provider.ProviderId;
 import org.onosproject.net.topology.ClusterId;
 import org.onosproject.net.topology.DefaultGraphDescription;
+import org.onosproject.net.topology.DefaultTopologyVertex;
 import org.onosproject.net.topology.GraphDescription;
 import org.onosproject.net.topology.LinkWeight;
 import org.onosproject.net.topology.TopologyCluster;
+import org.onosproject.net.topology.TopologyVertex;
 
 import java.util.Set;
 
@@ -53,6 +55,9 @@
     public static final DeviceId D4 = deviceId("of:4");
     public static final DeviceId D5 = deviceId("of:5");
 
+    public static final TopologyVertex V1 = new DefaultTopologyVertex(D1);
+    public static final TopologyVertex V5 = new DefaultTopologyVertex(D5);
+
     public static final PortNumber P1 = portNumber(1);
     public static final PortNumber P2 = portNumber(2);
 
@@ -62,6 +67,9 @@
 
     private DefaultTopology dt;
 
+    public static final ClusterId C0 = ClusterId.clusterId(0);
+    public static final ClusterId C1 = ClusterId.clusterId(1);
+
     @Before
     public void setUp() {
         long now = System.currentTimeMillis();
@@ -81,8 +89,9 @@
         assertEquals("incorrect device count", 5, dt.deviceCount());
         assertEquals("incorrect link count", 8, dt.linkCount());
         assertEquals("incorrect cluster count", 2, dt.clusterCount());
-        assertEquals("incorrect broadcast set size", 6,
-                     dt.broadcastSetSize(ClusterId.clusterId(0)));
+        assertEquals("incorrect broadcast set size", 6, dt.broadcastSetSize(C0));
+        assertEquals("incorrect root node", V1, dt.getCluster(C0).root());
+        assertEquals("incorrect root node", V5, dt.getCluster(C1).root());
     }
 
     @Test
