Index: move.c =================================================================== --- move.c (revision 5292) +++ move.c (revision 5293) @@ -107,7 +107,11 @@ if (Type == PCB_TYPE_ARC_POINT) { /* moving the endpoint of an arc is not really a move, but a change of arc properties */ - pcb_arc_set_angles((pcb_layer_t *)Ptr1, (pcb_arc_t *)Ptr2, pcb_crosshair.AttachedObject.start_angle, pcb_crosshair.AttachedObject.delta_angle); + if (pcb_crosshair.AttachedObject.radius == 0) + pcb_arc_set_angles((pcb_layer_t *)Ptr1, (pcb_arc_t *)Ptr2, pcb_crosshair.AttachedObject.start_angle, pcb_crosshair.AttachedObject.delta_angle); + else + pcb_arc_set_radii((pcb_layer_t *)Ptr1, (pcb_arc_t *)Ptr2, pcb_crosshair.AttachedObject.radius, pcb_crosshair.AttachedObject.radius); + pcb_crosshair.AttachedObject.radius = 0; } else { pcb_undo_add_obj_to_move(Type, Ptr1, Ptr2, Ptr3, DX, DY);