diff -r 65bcd7e304cf -r 0330fdcbdd1f master/master.c --- a/master/master.c Tue Nov 09 11:12:35 2010 +0100 +++ b/master/master.c Tue Nov 16 15:32:27 2010 +0100 @@ -1814,7 +1814,8 @@ slave->ports[0].next_slave = port0_slave; - for (i = 1; i < EC_MAX_PORTS; i++) { + i = 3; + while (i != 0) { if (!slave->ports[i].link.loop_closed) { *slave_position = *slave_position + 1; if (*slave_position < master->slave_count) { @@ -1827,6 +1828,14 @@ return -1; } } + switch (i) + { + case 0: i = 3; break; + case 1: i = 2; break; + case 3: i = 1; break; + case 2: + default:i = 0; break; + } } return 0;