diff --git a/python/tools/dht/tests.py b/python/tools/dht/tests.py
index 91eb810ff260b9c499907191a7903ff227362967..c82023a154a162694f1e0ff9a9b9c554876812eb 100644
--- a/python/tools/dht/tests.py
+++ b/python/tools/dht/tests.py
@@ -18,6 +18,8 @@ import math
 import numpy as np
 import matplotlib.pyplot as plt
 import networkx as nx
+from networkx.drawing.nx_agraph import graphviz_layout
+
 
 from opendht import *
 from dht.network import DhtNetwork, DhtNetworkSubProcess
@@ -246,16 +248,23 @@ class PhtTest(FeatureTest):
         if len(prefixes) == 0:
             return
 
-        edges = set([])
+        edges = list([])
         for prefix in prefixes:
             for i in range(-1, len(prefix)-1):
                 u = prefix[:i+1]
-                edges.add( ("" if i == -1 else u, u+"0") )
-                edges.add( ("" if i == -1 else u, u+"1") )
+                x = ("." if i == -1 else u, u+"0")
+                y = ("." if i == -1 else u, u+"1")
+                if x not in edges:
+                    edges.append(x)
+                if y not in edges:
+                    edges.append(y)
 
         # TODO: use a binary tree position layout...
-        G = nx.Graph(list(edges))
-        nx.draw(G, with_labels=True, node_color='white')
+        #   UPDATE : In a better way [change lib]
+        G = nx.Graph(sorted(edges, key=lambda x: len(x[0])))
+        plt.title("PHT: Tree")
+        pos=graphviz_layout(G,prog='dot')
+        nx.draw(G, pos, with_labels=True, node_color='white')
         plt.show()
 
     def run(self):
@@ -303,6 +312,8 @@ class PhtTest(FeatureTest):
                     DhtNetwork.log('This insert step took : ', time_taken, 'second')
                 FeatureTest.lock.wait()
 
+        time.sleep(1)
+
         # Recover entries now that the trie is complete.
         for key in keys:
             PhtTest.key = key