private void UpdateRestores(Label l) { // current verify is branching to this label, go and update all the "will be restored" bits var curRoot = CurrentlyInScope.FirstOrDefault(f => !f.IsBaseless); curRoot = curRoot ?? CurrentlyInScope.OrderByDescending(c => c.Iteration).First(); foreach (var kv in RestoreOnMark.AsEnumerable()) { foreach (var v in kv.Value.ToList().AsEnumerable()) { if (v.BeganAt == l) { var replacement = curRoot.Concat(v); kv.Value.Remove(v); kv.Value.Add(replacement); } } } }