diff --git a/deconvolution/d2_graph.py b/deconvolution/d2_graph.py
index d22248f2262b45972606a719a871c8d2f27ed699..a6a13cc68a7d5c69a83e680edb3dcafa88840711 100644
--- a/deconvolution/d2_graph.py
+++ b/deconvolution/d2_graph.py
@@ -165,6 +165,10 @@ class D2Graph(object):
         # Find dominated
         for dmer, dg_list in self.index.items():
             undominated = list_domination_filter(dg_list)
+            # if len(undominated) > 1:
+            #     print(dmer)
+            #     print("\n".join([str(x) for x in undominated]))
+            #     print()
 
             # Register dominated
             if len(dg_list) != len(undominated):
@@ -182,11 +186,11 @@ class D2Graph(object):
 
         # Remove dominated in index
         removable_dmers = []
-        for dmer, indexed_list in self.index.items():
+        for dmer in self.index:
             for r_dg in to_remove:
-                if r_dg in indexed_list:
-                    indexed_list.remove(r_dg)
-            if len(indexed_list) == 0:
+                if r_dg in self.index[dmer]:
+                    self.index[dmer] = list(filter(lambda x: x!=r_dg, self.index[dmer]))
+            if len(self.index[dmer]) == 0:
                 removable_dmers.append(dmer)
 
         # Remove empty dmers
diff --git a/tests/d2_graph_test.py b/tests/d2_graph_test.py
index a0f3099e1f034815f5d4ec8cb522673c2ba74d26..21bda74e570148477f7ea6ee4c2d5107eb25c2d0 100644
--- a/tests/d2_graph_test.py
+++ b/tests/d2_graph_test.py
@@ -46,11 +46,13 @@ class TestD2Graph(unittest.TestCase):
 
             # Test index
             awaited_index_size = comb(2*d+1, index_k) + (size - (2*d+1)) * comb(2*d, index_k-1)
-            print(d, size, index_k, awaited_index_size)
+            # print(d, size, index_k, awaited_index_size)
             if len(d2.index) != awaited_index_size:
                 dmers = [list(x) for x in d2.index]
-                dmers = [str(x) for x in dmers if len(x) != len(frozenset(x))]
-                print("\n".join(dmers))
+                dmers = [x for x in dmers if len(x) != len(frozenset(x))]
+
+                dmers = [str(x) for x in dmers]
+                # print("\n".join(dmers))
             self.assertEquals(awaited_index_size, len(d2.index))
 
             d2_nx = d2.nx_graph