Index: trunk/src/plugins/rt_topo/laa1.c =================================================================== --- trunk/src/plugins/rt_topo/laa1.c (revision 1460) +++ trunk/src/plugins/rt_topo/laa1.c (revision 1461) @@ -89,7 +89,6 @@ } p1 = laa_mst_add_point(mst, cx, cy, -1); p1->user_long = layer_bits(ctx, obj); - p1->fixed = 1; } else { #warning TODO: non-terminal poly heuristics @@ -143,8 +142,8 @@ rt_topo_laa_2net_t *tn = calloc(sizeof(rt_topo_laa_2net_t), 1); /* steiner points are vias, potentially using any layer */ - if (!edge->p1->fixed) edge->p1->user_long = layer_bits_all(ctx); - if (!edge->p2->fixed) edge->p2->user_long = layer_bits_all(ctx); + if ((edge->p1->user_long == 0) && !edge->p1->fixed) edge->p1->user_long = layer_bits_all(ctx); + if ((edge->p2->user_long == 0) && !edge->p2->fixed) edge->p2->user_long = layer_bits_all(ctx); tn->bbox.x1 = LAA_MIN(edge->p1->x, edge->p2->x); tn->bbox.y1 = LAA_MIN(edge->p1->y, edge->p2->y);