diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoLayoutManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoLayoutManager.java
index cdd95cf..9f92383 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoLayoutManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoLayoutManager.java
@@ -136,8 +136,9 @@
 
         UiTopoLayoutId parentId = layout.parent();
         return layoutMap.values().stream()
-                // all layouts who are NOT me and who share my parent...
+                // all layouts who are NOT me (or root) and who share my parent...
                 .filter(l -> !Objects.equals(l.id(), layoutId) &&
+                        !Objects.equals(l.id(), UiTopoLayoutId.DEFAULT_ID) &&
                         Objects.equals(l.parent(), parentId))
                 .collect(Collectors.toSet());
     }
diff --git a/web/gui/src/main/webapp/app/view/topoX/topoX.css b/web/gui/src/main/webapp/app/view/topoX/topoX.css
index 3cb0514..938e03d 100644
--- a/web/gui/src/main/webapp/app/view/topoX/topoX.css
+++ b/web/gui/src/main/webapp/app/view/topoX/topoX.css
@@ -16,7 +16,7 @@
 
 
 /*
- ONOS GUI -- Topology View (layout) -- CSS file
+ ONOS GUI -- Topology View (test layout) -- CSS file
  */
 
 /* --- Base SVG Layer --- */
diff --git a/web/gui/src/main/webapp/app/view/topoX/topoX.html b/web/gui/src/main/webapp/app/view/topoX/topoX.html
index c5747dd..472f571 100644
--- a/web/gui/src/main/webapp/app/view/topoX/topoX.html
+++ b/web/gui/src/main/webapp/app/view/topoX/topoX.html
@@ -1,19 +1,3 @@
-<!--
-  ~ Copyright 2016-present Open Networking Laboratory
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
 <!-- Topology View partial HTML -->
 <div id="ov-topoX">
     <div id="topoXtmp">
diff --git a/web/gui/src/main/webapp/app/view/topoX/topoXForce.js b/web/gui/src/main/webapp/app/view/topoX/topoXForce.js
index b2e5e87..3f51509 100644
--- a/web/gui/src/main/webapp/app/view/topoX/topoXForce.js
+++ b/web/gui/src/main/webapp/app/view/topoX/topoXForce.js
@@ -143,7 +143,19 @@
     }
 
     function doTmpPeerRegions(data) {
+        var peerDiv = topdiv.select('.peers').select('div');
+        rmP(peerDiv);
 
+        function logPeer(p) {
+            var o = peerDiv.append('p'),
+                id = p.id,
+                nt = p.nodeType;
+            o.text('[' + nt + '] id = ' + id);
+        }
+
+        data.peers.forEach(function (p) {
+            logPeer(p);
+        });
     }
 
     // ========================== Event Handlers
