Index: trunk/src/move.c =================================================================== --- trunk/src/move.c (revision 32558) +++ trunk/src/move.c (revision 32559) @@ -241,6 +241,7 @@ else { pcb_undo_add_obj_to_move(Type, Ptr1, Ptr2, Ptr3, dx1, dy1); ptr2 = pcb_object_operation(&MoveFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3); + pcb_line_mod_merge(ptr2, 1); } } break; @@ -249,6 +250,7 @@ rnd_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icc", 0, DX, DY); pcb_undo_add_obj_to_move(Type, Ptr1, Ptr2, Ptr3, DX, DY); ptr2 = pcb_object_operation(&MoveFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3); + pcb_line_mod_merge(ptr2, 1); break; } Index: trunk/src/route.c =================================================================== --- trunk/src/route.c (revision 32558) +++ trunk/src/route.c (revision 32559) @@ -481,6 +481,9 @@ if (exto != NULL) pcb_extobj_float_geo(exto); + /* if the modified line can be merged with an existing line, do it */ + pcb_line_mod_merge(apply_to_line, 1); + /* The existing line has been used so forget about it. */ apply_to_line = NULL; applied = 1;