Index: pcb-mincut/solve.c =================================================================== --- pcb-mincut/solve.c (revision 11771) +++ pcb-mincut/solve.c (revision 11772) @@ -63,6 +63,8 @@ num_neigh++; } } + if (num_neigh == 0) + return -1; return st->neigh[pcb_rand() % num_neigh]; } @@ -116,6 +118,8 @@ int n1, n2; n2 = pick_del(&st); n1 = pick_neigh(&st, n2); + if (n1 < 0) + 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]);