diff --git a/www/plugins/map/js/controllers/network-controllers.js b/www/plugins/map/js/controllers/network-controllers.js
index 579ba2c1d197dd307539b6af252e17404388111b..69d6113138dc9f4d121e338e199cd2fd165e9c8b 100644
--- a/www/plugins/map/js/controllers/network-controllers.js
+++ b/www/plugins/map/js/controllers/network-controllers.js
@@ -155,33 +155,14 @@ angular.module('cesium.map.network.controllers', ['cesium.services', 'cesium.map
     $scope.updateView = function(data) {
       console.debug("[map] [peers] Updating UI");
 
-      $scope.search.results = data.peers;
       $scope.search.memberPeersCount = data.memberPeersCount;
       // Always tru if network not started (e.g. after leave+renter the view)
       $scope.search.loading = !$scope.networkStarted || csNetwork.isBusy();
 
-      if (!$scope.search.results || !$scope.search.results.length) return; // nothing
-
+      // Store marker id, to be able to apply deletion
       var markerIdByPeerIdToRemove = angular.copy(markerIdByPeerId);
-      var lngStep = 0.001;
-
-      var updateMarker = function(marker, peer) {
-        marker.layer = !peer.online ? 'offline' : (peer.uid ? 'member' : 'mirror');
-        marker.icon = angular.copy(icons[marker.layer]);
-        marker.opacity = peer.online ? 0.9 : 0.7;
-        marker.title = peer.dns || peer.server;
-        if (peer.online && !peer.hasMainConsensusBlock) {
-          marker.icon.markerColor = peer.hasConsensusBlock ? 'beige' : 'lightgray';
-        }
-        if (!marker.lng) {
-          marker.lng = marker.position.lng + Math.random() / 1000;
-          marker.lat = marker.position.lat + Math.random() / 1000;
-        }
-
-        return marker;
-      };
 
-      _.forEach(data.peers, function(peer){
+      _.forEach(data.peers||[], function(peer){
         // skip TOR peer
         if (peer.isTor()) return; // already define
         // get marker id
@@ -189,7 +170,7 @@ angular.module('cesium.map.network.controllers', ['cesium.services', 'cesium.map
 
         // if already exists
         if (markerId && $scope.map.markers[markerId]) {
-          updateMarker($scope.map.markers[markerId], peer);
+          $scope.updateMarker($scope.map.markers[markerId], peer);
           delete markerIdByPeerIdToRemove[peer.id];
           return;
         }
@@ -200,7 +181,7 @@ angular.module('cesium.map.network.controllers', ['cesium.services', 'cesium.map
 
           // Create the marker
           .then(function(position){
-            var marker = updateMarker({
+            var marker = $scope.updateMarker({
               position: position,
               getMessageScope: function() {
                 var scope = $scope.$new();
@@ -222,14 +203,6 @@ angular.module('cesium.map.network.controllers', ['cesium.services', 'cesium.map
           });
       });
 
-      // Remove old markers not found in the new result
-      _.forEach(_.keys(markerIdByPeerIdToRemove), function(peerId) {
-        delete markerIdByPeerId[peerId];
-      });
-      _.forEach(_.values(markerIdByPeerIdToRemove), function(markerId) {
-        delete $scope.map.markers[markerId];
-      });
-
       leafletData.getMap($scope.mapId).then(function(map) {
 
         // Add loading control
@@ -255,6 +228,32 @@ angular.module('cesium.map.network.controllers', ['cesium.services', 'cesium.map
           delete $scope.stateCenter;
         }
       });
+
+      // Remove old markers not found in the new result
+      _.forEach(_.keys(markerIdByPeerIdToRemove), function(peerId) {
+        delete markerIdByPeerId[peerId];
+      });
+      _.forEach(_.values(markerIdByPeerIdToRemove), function(markerId) {
+        delete $scope.map.markers[markerId];
+      });
+
+
+    };
+
+    $scope.updateMarker = function(marker, peer) {
+      marker.layer = !peer.online ? 'offline' : (peer.uid ? 'member' : 'mirror');
+      marker.icon = angular.copy(icons[marker.layer]);
+      marker.opacity = peer.online ? 0.9 : 0.7;
+      marker.title = peer.dns || peer.server;
+      if (peer.online && !peer.hasMainConsensusBlock) {
+        marker.icon.markerColor = peer.hasConsensusBlock ? 'beige' : 'lightgray';
+      }
+      if (!marker.lng) {
+        marker.lng = marker.position.lng + Math.random() / 1000;
+        marker.lat = marker.position.lat + Math.random() / 1000;
+      }
+
+      return marker;
     };
 
   });