diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2NodePosition.js b/web/gui/src/main/webapp/app/view/topo2/topo2NodePosition.js
index 86d1faa..1d71212 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2NodePosition.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2NodePosition.js
@@ -57,7 +57,18 @@
                 loc = {};
 
             if (t2bgs.getBackgroundType() === 'geo') {
+
+                var loc = node.get('location'),
+                    type = loc.locType || loc.type;
+
+                node.set({ location: {
+                    type: type.toLowerCase(),
+                    lat: loc.latOrY || loc.lat,
+                    lng: loc.longOrX || loc.lng
+                }});
+
                 setLongLat(node);
+
                 return true;
             } else {
                 loc.gridX = -20;
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Region.js b/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
index 8fbe814..68b1ad1 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
@@ -84,6 +84,7 @@
                     });
 
                     this.sortMultiLinks();
+                    this.assignPeerLocations();
 
                     this.model.set({ subregions: t2sr.createSubRegionCollection(this.regionData.subregions, this) });
                     this.model.set({ devices: t2ds.createDeviceCollection(this.regionData.devices, this) });
@@ -107,6 +108,16 @@
                     var regex = new RegExp('^[^/]*');
                     return regex.exec(key)[0];
                 },
+                assignPeerLocations: function () {
+                    var _this = this;
+                    _.each(this.regionData.peerLocations, function (location, id) {
+                        _.each(_this.peers, function (peer) {
+                            if (peer.id === id) {
+                                peer.location = location;
+                            }
+                        })
+                    });
+                },
                 sortMultiLinks: function () {
                     var _this = this,
                         deviceConnections = {};
