diff --git a/lib/random.py b/lib/random.py
index 1d09352c52a60bca4dad2f827488c2c773456d21..c6f8898887b622f38ee9f0d01219b6e4dd3714df 100644
--- a/lib/random.py
+++ b/lib/random.py
@@ -459,7 +459,7 @@ def mixed_model_spat_sbm(nb_nodes, nb_edges, nb_com, alpha, percentage_edge_betw
     G = spatial_graph(nb_nodes, nb_edges, coords="random", dist_func=dist_func)
     G = add_partitions_G(G, nb_com)
     nb_edges = G.size()
-
+    float_epsilon = np.finfo(float).eps
     def nb_of_pair(N):
         return (N * (N - 1)) / 2
 
@@ -484,9 +484,9 @@ def mixed_model_spat_sbm(nb_nodes, nb_edges, nb_com, alpha, percentage_edge_betw
     all_probs_sbm = np.concatenate((probs_sbm_inter, probs_sbm_intra))
     all_probs_sbm /= all_probs_sbm.sum()
 
-    all_probs_spa = np.asarray([1 / dist_func(edge[0], edge[1]) for edge in all_edges])
+    pos = nx.get_node_attributes(G,"pos")
+    all_probs_spa = np.asarray([1 / (float_epsilon +dist_func(pos[edge[0]], pos[edge[1]])) for edge in all_edges])
     all_probs_spa /= all_probs_spa.sum()
-
     all_probs = alpha * (all_probs_sbm) + (1 - alpha) * all_probs_spa
 
     final_edges = []