diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
index 801a970d..e5946f9 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
@@ -95,14 +95,14 @@
 
     // ==================================================================
 
-    private String safeId(Region r) {
-        return r == null ? "(root)" : r.id().toString();
+    private String currentRegionId() {
+        Region current = topoSession.currentLayout().region();
+        return current == null ? "(root)" : current.id().toString();
     }
 
-
     private ObjectNode mkLayoutMessage(UiTopoLayout currentLayout) {
         List<UiTopoLayout> crumbs = topoSession.breadCrumbs();
-        return t2json.layout(currentLayout, crumbs);
+        return t2json.layout(currentLayout, crumbs, currentRegionId());
     }
 
     private ObjectNode mkRegionMessage(UiTopoLayout currentLayout) {
@@ -114,9 +114,8 @@
 
     private ObjectNode mkPeersMessage(UiTopoLayout currentLayout) {
         Set<UiNode> peers = topoSession.getPeerNodes(currentLayout);
-        String ridStr = safeId(topoSession.currentLayout().region());
         ObjectNode peersPayload = objectNode();
-        peersPayload.set("peers", t2json.closedNodes(ridStr, peers));
+        peersPayload.set("peers", t2json.closedNodes(currentRegionId(), peers));
         return peersPayload;
     }
 
@@ -212,8 +211,7 @@
         public void process(ObjectNode payload) {
             // NOTE: metadata for a node is stored within the context of the
             //       current region.
-            String ridStr = safeId(topoSession.currentLayout().region());
-            t2json.updateMeta(ridStr, payload);
+            t2json.updateMeta(currentRegionId(), payload);
         }
     }
 
