diff --git a/src/cutecoin/core/net/network.py b/src/cutecoin/core/net/network.py
index 44fc92ce42da0e3d05959a994b76aa87c5b5322b..c4df2f9acc9a13380463e0cbcd5213163388ca8c 100644
--- a/src/cutecoin/core/net/network.py
+++ b/src/cutecoin/core/net/network.py
@@ -82,14 +82,24 @@ class Network(QObject):
     def start_perpetual_crawling(self):
         self.must_crawl = True
         while self.must_crawl:
-            self.nodes = self.crawling(interval=10)
-            for n in self._nodes:
-                n.changed.connect(self.nodes_changed)
+            nodes = self.crawling(interval=10)
+
+            new_inlines = [n.endpoint.inline() for n in nodes]
+            last_inlines = [n.endpoint.inline() for n in self._nodes]
+
+            hash_new_nodes = hash(tuple(frozenset(sorted(new_inlines))))
+            hash_last_nodes= hash(tuple(frozenset(sorted(last_inlines))))
+
+            if hash_new_nodes != hash_last_nodes:
+                self._nodes = nodes
+                self.nodes_changed.emit()
+                for n in self._nodes:
+                    n.changed.connect(self.nodes_changed)
 
     def crawling(self, interval=0):
         nodes = []
         traversed_pubkeys = []
-        for n in self.nodes:
+        for n in self._nodes.copy():
             logging.debug(traversed_pubkeys)
             logging.debug("Peering : next to read : {0} : {1}".format(n.pubkey,
                           (n.pubkey not in traversed_pubkeys)))
diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py
index e484e97a61403630d605b61aa328c62fb9fdf006..3223fe03794fa9b63ee3bd53f49bca16b235cfd2 100644
--- a/src/cutecoin/core/net/node.py
+++ b/src/cutecoin/core/net/node.py
@@ -112,8 +112,9 @@ class Node(QObject):
             self._pubkey = node_pubkey
             emit_change = True
 
-        new_inlines = [e.inline() for e in [n for n in self._neighbours]]
-        last_inlines = [e.inline() for e in [n for n in self._neighbours]]
+        logging.debug(neighbours)
+        new_inlines = [e.inline() for n in neighbours for e in n]
+        last_inlines = [e.inline() for n in self._neighbours for e in n]
 
         hash_new_neighbours = hash(tuple(frozenset(sorted(new_inlines))))
         hash_last_neighbours = hash(tuple(frozenset(sorted(last_inlines))))
@@ -138,7 +139,7 @@ class Node(QObject):
                 peering = bma.network.Peering(self.endpoint.conn_handler()).get()
                 peer = Peer.from_signed_raw("{0}{1}\n".format(peering['raw'],
                                                             peering['signature']))
-                node = Node.from_peer(peer)
+                node = Node.from_peer(currency, peer)
                 logging.debug(traversed_pubkeys)
                 logging.debug("Traversing : next to read : {0} : {1}".format(node.pubkey,
                               (node.pubkey not in traversed_pubkeys)))
diff --git a/src/cutecoin/gui/network_tab.py b/src/cutecoin/gui/network_tab.py
index aa46dbe1a623c7bd0398b540c6186b257c4464dd..4d13273c04e04a27c76321dba86098decb7d945a 100644
--- a/src/cutecoin/gui/network_tab.py
+++ b/src/cutecoin/gui/network_tab.py
@@ -36,6 +36,6 @@ class NetworkTabWidget(QWidget, Ui_NetworkTabWidget):
         community.network.nodes_changed.connect(self.refresh_nodes)
 
     def refresh_nodes(self):
-        self.table_network.sourceModel.dataChanged.emit(QModelIndex(), QModelIndex())
+        self.table_network.model().sourceModel().modelReset.emit()
 
 
diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py
index d74a21992cf129677afaa17103fce3a021e0dbb5..946d1302e3f58d789a446f23f3ff117d11164f33 100644
--- a/src/cutecoin/models/network.py
+++ b/src/cutecoin/models/network.py
@@ -47,6 +47,8 @@ class NetworkFilterProxyModel(QSortFilterProxyModel):
 
     def data(self, index, role):
         source_index = self.mapToSource(index)
+        if not source_index.isValid():
+            return QVariant()
         source_data = self.sourceModel().data(source_index, role)
         if index.column() == self.sourceModel().column_types.index('is_member') \
          and role == Qt.DisplayRole: