Index: exec/totemsrp.c =================================================================== --- exec/totemsrp.c (revision 2129) +++ exec/totemsrp.c (revision 2130) @@ -1294,6 +1294,8 @@ { if (instance->old_ring_state_saved == 0) { instance->old_ring_state_saved = 1; + memcpy (&instance->my_old_ring_id, &instance->my_ring_id, + sizeof (struct memb_ring_id)); instance->old_ring_state_aru = instance->my_aru; instance->old_ring_state_high_seq_received = instance->my_high_seq_received; log_printf (instance->totemsrp_log_level_notice, @@ -1319,7 +1321,9 @@ static void ring_state_restore (struct totemsrp_instance *instance) { if (instance->old_ring_state_saved) { - totemip_zero_set(&instance->my_ring_id.rep); + memcpy (&instance->my_ring_id, &instance->my_old_ring_id, + sizeof (struct memb_ring_id)); + instance->my_aru = instance->old_ring_state_aru; instance->my_high_seq_received = instance->old_ring_state_high_seq_received; log_printf (instance->totemsrp_log_level_notice, @@ -1330,6 +1334,8 @@ static void old_ring_state_reset (struct totemsrp_instance *instance) { + log_printf (instance->totemsrp_log_level_debug, + "Resetting old ring state\n"); instance->old_ring_state_saved = 0; }