Hi all, I found something weird in deleting vertices and edges of a graph. Say I simply create a graph like: g = Graph(directed=False) g.add_vertex(7) g.add_edge(g.vertex(0), g.vertex(1)) g.add_edge(g.vertex(1), g.vertex(2)) g.add_edge(g.vertex(2), g.vertex(3)) g.add_edge(g.vertex(3), g.vertex(4)) g.add_edge(g.vertex(2), g.vertex(5)) g.add_edge(g.vertex(5), g.vertex(6)) del_list = [g.vertex(1), g.vertex(3)] for v in reversed(sorted(del_list)): print 'deleting vertex', int(v) ## for ve in v.out_edges(): ## print 'deleting edges', ve.source(), ve.target() ## g.remove_edge(ve) g.remove_vertex(v, fast=True) The above code will delete vertex 3 first, then vertex 1 as expected. However, in order to keep correct topology, we should delete some related edges first, like the three commented lines (start with "##"). But if you uncomment the three lines, weird thing happens: the program will delete vertex 1 first, then vertex 3. Of course I can sort the vertex index instead of vertex descriptor to avoid the problem. But I am wondering where is wrong. Could anyone explain this? -- Cheers, Bo Wu