Index: pcb-mincut/solve.c =================================================================== --- pcb-mincut/solve.c (revision 18163) +++ pcb-mincut/solve.c (revision 18164) @@ -119,8 +119,10 @@ int n1, n2; n2 = pick_del(&st); n1 = pick_neigh(&st, n2); - if (n1 < 0) + if (n1 < 0) { + FREE_ALL(); return BAD; + } #ifndef DEBUG_MERGES #ifdef DEBUG_SOLVE printf("Merge %d (%s) into %d (%s)\n", n2, st.g->node2name[n2], n1, st.g->node2name[n1]);