anchor.diff:      %% counter values of 0 & 1.
       %%
       put(react, []),
  -    if S#ch_mgr.sane_transitions > 3 ->         % TODO review this constant
  -            %% ?V("Skr,~w,", [S#ch_mgr.name]),
  -            react_to_env_A10(S#ch_mgr{not_sanes=orddict:new()});
  -       true ->
  -            %% ?V("Sk,~w,~w,", [S#ch_mgr.name, S#ch_mgr.sane_transitions]),
  -            react_to_env_A10(S)
  +    try
  +        if S#ch_mgr.sane_transitions > 3 ->         % TODO review this constant
  +                %% ?V("Skr,~w,", [S#ch_mgr.name]),
  +                react_to_env_A10(S#ch_mgr{not_sanes=orddict:new()});
  +           true ->
  +                %% ?V("Sk,~w,~w,", [S#ch_mgr.name, S#ch_mgr.sane_transitions]),
  +                react_to_env_A10(S)
  +        end
  +    catch
  +        throw:{zerf,_} ->
  +            Proj = S#ch_mgr.proj,
  +            {{no_change, [], Proj#projection_v1.epoch_number}, S}
       end.
   
   react_to_env_A10(S) ->
  
positive.code:     P2 = if CMode == cp_mode ->
                   %% TODO incompete logic!
                   UpWitnesses = [W || W <- Up, lists:member(W, OldWitness_list)],
                   Majority = full_majority_size(length(AllMembers)),
                   SoFar = length(NewUPI),
                   if SoFar >= Majority ->
                           P;
  
negative.code:             {_, P_newprop3_flap_count} when P_newprop3_flap_count >= FlapLimit ->
                  AllHosed = get_all_hosed(P_newprop3),
                  P_current_inner = inner_projection_or_self(P_current),
                  {P_i, S_i, _Up} = calc_projection2(P_current_inner,
                                                     MyName, AllHosed, [], S3),
                  ?REACT({a30, ?LINE, [{raw_all_hosed,get_all_hosed(P_newprop3)},
                                      {up, Up},
                                      {all_hosed, AllHosed},
  