diff --git a/res/ui/community_cfg.ui b/res/ui/community_cfg.ui
index 2908765829329949d9523aa57373d6ccec16b3e2..9c17e89ff35b30851b3d74b4c1aa6d76966ed9eb 100644
--- a/res/ui/community_cfg.ui
+++ b/res/ui/community_cfg.ui
@@ -261,5 +261,6 @@
   <slot>next()</slot>
   <slot>previous()</slot>
   <slot>current_wallet_changed(int)</slot>
+  <slot>remove_node()</slot>
  </slots>
 </ui>
diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py
index a930916abdb8eea45e827d35e6a42142d53eb68a..7a7d3fd69898e9f99f27bc216d5e66c743aa255b 100644
--- a/src/cutecoin/core/community.py
+++ b/src/cutecoin/core/community.py
@@ -308,14 +308,21 @@ class Community(QObject):
         '''
         return time.time() - certtime > self.parameters['sigValidity']
 
-    @property
-    def add_peer(self, peer):
+    def add_node(self, node):
         '''
         Add a peer to the community.
 
         :param peer: The new peer as a ucoinpy Peer object.
         '''
-        self._network.add_node(Node.from_peer(peer))
+        self._network.add_root_node(node)
+
+    def remove_node(self, index):
+        '''
+        Remove a node from the community.
+
+        :param index: The index of the removed node.
+        '''
+        self._network.remove_root_node(index)
 
     def get_block(self, number=None):
         '''
@@ -470,7 +477,7 @@ class Community(QObject):
         '''
 
         nodes_data = []
-        for node in self._network.online_nodes:
+        for node in self._network.root_nodes:
             nodes_data.append(node.jsonify())
 
         data = {'currency': self.currency,
diff --git a/src/cutecoin/core/net/network.py b/src/cutecoin/core/net/network.py
index dfe01ce6ea129d3ceceb50cd629c84ab37e07cdc..89c7c3c86d8bc9a2835133935f7eaaf0a7ce2d83 100644
--- a/src/cutecoin/core/net/network.py
+++ b/src/cutecoin/core/net/network.py
@@ -29,13 +29,14 @@ class Network(Watcher):
         :param list nodes: The nodes of the network
         '''
         super().__init__()
+        self._root_nodes = nodes
         self._nodes = []
         self._mutex = QMutex()
         self.currency = currency
         self.nodes = nodes
         self._must_crawl = False
         self._is_perpetual = False
-        self._block_found = 0
+        self._block_found = self.latest_block
 
     @classmethod
     def create(cls, node):
@@ -48,12 +49,6 @@ class Network(Watcher):
         '''
         nodes = [node]
         network = cls(node.currency, nodes)
-        nodes = network.crawling()
-        block_max = max([n.block for n in nodes])
-        for node in nodes:
-            node.check_sync(block_max)
-        network.nodes = nodes
-        network._block_found = network.latest_block
         return network
 
     def merge_with_json(self, json_data):
@@ -73,7 +68,6 @@ class Network(Watcher):
                 n.changed.disconnect()
             except TypeError:
                 pass
-        self.nodes = self.crawling()
 
     @classmethod
     def from_json(cls, currency, json_data):
@@ -87,11 +81,7 @@ class Network(Watcher):
         for data in json_data:
             node = Node.from_json(currency, data)
             nodes.append(node)
-        block_max = max([n.block for n in nodes])
-        for node in nodes:
-            node.check_sync(block_max)
         network = cls(currency, nodes)
-        network._block_found = network.latest_block
         return network
 
     def jsonify(self):
@@ -138,6 +128,13 @@ class Network(Watcher):
         '''
         return self._nodes
 
+    @property
+    def root_nodes(self):
+        '''
+        Get root nodes.
+        '''
+        return self._root_nodes
+
     @nodes.setter
     def nodes(self, new_nodes):
         '''
@@ -172,6 +169,18 @@ class Network(Watcher):
         node.changed.connect(self.handle_change)
         logging.debug("{:} connected".format(node.pubkey))
 
+    def add_root_node(self, node):
+        '''
+        Add a node to the root nodes list
+        '''
+        self._root_nodes.append(node)
+
+    def remove_root_node(self, index):
+        '''
+        Remove a node from the root nodes list
+        '''
+        self._root_nodes.pop(index)
+
     def moveToThread(self, thread):
         for n in self.nodes:
             n.moveToThread(thread)
diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py
index 6d131a7524c4daa1c1aeb83be97110c102e7db28..165aba984700b5efa773143fd51ce603196ee0ae 100644
--- a/src/cutecoin/core/net/node.py
+++ b/src/cutecoin/core/net/node.py
@@ -239,7 +239,6 @@ class Node(QObject):
             node_currency = informations["currency"]
             node_uid = self._request_uid()
 
-            logging.debug("Continuing...")
             #If the nodes goes back online...
             if self.state in (Node.OFFLINE, Node.CORRUPTED):
                 self.state = Node.ONLINE
diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py
index 531b691c5df3f8d722037436535378178a6cc7e0..14fcd58ecd240b3f4c9769e9a082b17c55af7109 100644
--- a/src/cutecoin/gui/process_cfg_community.py
+++ b/src/cutecoin/gui/process_cfg_community.py
@@ -12,6 +12,7 @@ from ucoinpy.api.bma import ConnectionHandler
 from ucoinpy.documents.peer import Peer
 
 from PyQt5.QtWidgets import QDialog, QMenu, QMessageBox
+from PyQt5.QtGui import QCursor
 
 from ..gen_resources.community_cfg_uic import Ui_CommunityConfigurationDialog
 from ..models.peering import PeeringTreeModel
@@ -77,7 +78,7 @@ class StepPageAddpeers(Step):
 
     def display_page(self):
         # We add already known peers to the displayed list
-        self.config_dialog.nodes = self.config_dialog.community.network.nodes
+        self.config_dialog.nodes = self.config_dialog.community.network.root_nodes
         try:
             tree_model = PeeringTreeModel(self.config_dialog.community)
         except requests.exceptions.RequestException:
@@ -151,8 +152,8 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
         '''
         Add node slot
         '''
-        server = self.lineedit_server.text()
-        port = self.spinbox_port.value()
+        server = self.lineedit_add_address.text()
+        port = self.spinbox_add_port.value()
 
         try:
             node = Node.from_address(self.community.currency, server, port)
@@ -162,14 +163,34 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
                                  str(e))
         self.tree_peers.setModel(PeeringTreeModel(self.community))
 
+    def remove_node(self):
+        '''
+        Remove node slot
+        '''
+        logging.debug("Remove node")
+        index = self.sender().data()
+        self.community.remove_node(index)
+        self.tree_peers.setModel(PeeringTreeModel(self.community))
+
+    @property
+    def nb_steps(self):
+        s = self.step
+        nb_steps = 1
+        while s.next_step != None:
+            s = s.next_step
+            nb_steps = nb_steps + 1
+        return nb_steps
+
     def showContextMenu(self, point):
-        if self.stacked_pages.currentIndex() == 1:
+        if self.stacked_pages.currentIndex() == self.nb_steps - 1:
             menu = QMenu()
-            action = menu.addAction("Delete", self.removeNode)
+            index = self.tree_peers.indexAt(point)
+            action = menu.addAction("Delete", self.remove_node)
+            action.setData(index.row())
             if self.community is not None:
                 if len(self.nodes) == 1:
                     action.setEnabled(False)
-            menu.exec_(self.mapToGlobal(point))
+            menu.exec_(QCursor.pos())
 
     def accept(self):
         try:
diff --git a/src/cutecoin/models/peering.py b/src/cutecoin/models/peering.py
index e3a35969b800192d97794f2890f5d386b95417c4..313c3c581210e52e426e33ede66d582b0629561a 100644
--- a/src/cutecoin/models/peering.py
+++ b/src/cutecoin/models/peering.py
@@ -96,7 +96,7 @@ class PeeringTreeModel(QAbstractItemModel):
         Constructor
         '''
         super().__init__(None)
-        self.nodes = community._network.online_nodes
+        self.nodes = community._network.root_nodes
         self.root_item = RootItem(community.currency)
         self.refresh_tree()