diff --git a/src/cutecoin/gui/views/wot.py b/src/cutecoin/gui/views/wot.py
index e7efa174c30d055dd7dc82be69a1d0900415a658..5108c4384215885da54b07cb3a09afb5eb3985ea 100644
--- a/src/cutecoin/gui/views/wot.py
+++ b/src/cutecoin/gui/views/wot.py
@@ -142,11 +142,11 @@ class Scene(QGraphicsScene):
         nodes = ((k, v) for (k, v) in sorted(graph.items(), key=lambda kv: kv[1]['text'].lower()) if selected_id in (arc['id'] for arc in v['arcs']))
         # add nodes and arcs
         for _id, certifier_node in nodes:
+            node = self.add_node(certifier_node, (x, y))
             for arc in certifier_node['arcs']:
                 if arc['id'] == selected_id:
-                    node = self.add_node(certifier_node, (x, y))
                     self.add_arc(node, root_node, arc)
-                    y += 50
+            y += 50
 
         self.update()
 
diff --git a/src/cutecoin/gui/wot_tab.py b/src/cutecoin/gui/wot_tab.py
index ceb936821b03af7b32880711cff31ce69aa11ae6..f6e2b6ecb5173341f604554f8478eb0092134dfe 100644
--- a/src/cutecoin/gui/wot_tab.py
+++ b/src/cutecoin/gui/wot_tab.py
@@ -67,10 +67,11 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
         node_status += NODE_STATUS_SELECTED
 
         # highlighted node (wallet)
-        graph[public_key] = {'id': public_key, 'arcs': [], 'text': certifiers['uid'], 'tooltip': public_key, 'status': node_status}
+        graph[public_key] = {'id': public_key, 'arcs': list(), 'text': certifiers['uid'], 'tooltip': public_key, 'status': node_status}
 
         # add certifiers of uid
         for certifier in certifiers['certifications']:
+            # new node
             if certifier['pubkey'] not in graph.keys():
                 node_status = (NODE_STATUS_HIGHLIGHTED and (certifier['pubkey'] == self.account.pubkey)) or 0
                 graph[certifier['pubkey']] = {
@@ -80,6 +81,14 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
                     'tooltip': certifier['pubkey'],
                     'status': node_status
                 }
+            # add only valid certification...
+            if (time.time() - certifier['cert_time']['medianTime']) > self.signature_validity:
+                continue
+            # keep only the latest certification
+            if graph[certifier['pubkey']]['arcs']:
+                if certifier['cert_time']['medianTime'] < graph[certifier['pubkey']]['arcs'][0]['cert_time']:
+                    continue
+                # display validity status
             if (time.time() - certifier['cert_time']['medianTime']) > self.ARC_STATUS_STRONG_time:
                 arc_status = ARC_STATUS_WEAK
             else:
@@ -89,12 +98,26 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
                 'status': arc_status,
                 'tooltip': datetime.datetime.fromtimestamp(
                     certifier['cert_time']['medianTime'] + self.signature_validity
-                ).strftime("%Y/%m/%d")
+                ).strftime("%Y/%m/%d"),
+                'cert_time': certifier['cert_time']['medianTime']
             }
-            graph[certifier['pubkey']]['arcs'].append(arc)
+            graph[certifier['pubkey']]['arcs'] = [arc]
 
         # add certified by uid
         for certified in self.community.request(bma.wot.CertifiedBy, {'search': public_key})['certifications']:
+            if certified['pubkey'] not in graph.keys():
+                node_status = (NODE_STATUS_HIGHLIGHTED and (certified['pubkey'] == self.account.pubkey)) or 0
+                graph[certified['pubkey']] = {
+                    'id': certified['pubkey'],
+                    'arcs': list(),
+                    'text': certified['uid'],
+                    'tooltip': certified['pubkey'],
+                    'status': node_status
+                }
+            # add only valid certification...
+            if (time.time() - certified['cert_time']['medianTime']) > self.signature_validity:
+                continue
+            # display validity status
             if (time.time() - certified['cert_time']['medianTime']) > self.ARC_STATUS_STRONG_time:
                 arc_status = ARC_STATUS_WEAK
             else:
@@ -104,18 +127,21 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
                 'status': arc_status,
                 'tooltip': datetime.datetime.fromtimestamp(
                     certified['cert_time']['medianTime'] + self.signature_validity
-                ).strftime("%Y/%m/%d")
+                ).strftime("%Y/%m/%d"),
+                'cert_time': certified['cert_time']['medianTime']
             }
             graph[public_key]['arcs'].append(arc)
-            if certified['pubkey'] not in graph.keys():
-                node_status = (NODE_STATUS_HIGHLIGHTED and (certified['pubkey'] == self.account.pubkey)) or 0
-                graph[certified['pubkey']] = {
-                    'id': certified['pubkey'],
-                    'arcs': list(),
-                    'text': certified['uid'],
-                    'tooltip': certified['pubkey'],
-                    'status': node_status
-                }
+            # removed old duplicated arcs
+            arcs = list()
+            for a in graph[public_key]['arcs']:
+                # if same arc already exists...
+                if a['id'] == arc['id']:
+                    # if arc more recent, dont keep old one...
+                    if arc['cert_time'] > a['cert_time']:
+                        continue
+                arcs.append(a)
+            # replace arcs with updated list
+            graph[public_key]['arcs'] = arcs
 
         # draw graph in qt scene
         self.graphicsView.scene().update_wot(graph)