if (p_trace.is_shove_fixed()) return false;
Set<BrdAbitPin> saved_contact_pins = contact_pins;
contact_pins = null;
boolean result = false;
boolean connection_to_trace_improved = true;
<BUG>BrdTracep curr_trace = p_trace;
while (connection_to_trace_improved)
</BUG>
{
connection_to_trace_improved = false;

if (p_trace.is_shove_fixed()) return false;
Set<BrdAbitPin> saved_contact_pins = contact_pins;
contact_pins = null;
boolean result = false;
boolean connection_to_trace_improved = true;
BrdTracep curr_trace = p_trace;
int loop_counter=0;
while (connection_to_trace_improved && loop_counter++ < 100)
{
connection_to_trace_improved = false;
