anchor.diff:      MemberRank = orddict:from_list(
                      lists:zip(All_list, lists:seq(1, length(All_list)))),
       N = length(All_list),
  -    rank_and_repair(FLUsRs, Proj, -1, undefined, [], MemberRank, N).
  -
  -rank_and_repair([], _Proj, TopRank, WinningProj, RepairInstr,
  -                _MemberRank, _N) ->
  +    TopRank = lists:max([-1] ++ 
  +                        [rank_projection(ProjX, MemberRank, N) ||
  +                            {_FLU, ProjX} <- FLUsRs,
  +                            is_record(ProjX, projection)]),
  +    rank_and_repair(FLUsRs, Proj, TopRank, undefined, [], MemberRank, N).
  +
  +rank_and_repair([], _Proj, TopRank, WinningProj,
  +                RepairInstr, _MemberRank, _N) ->
       {TopRank, WinningProj, RepairInstr};
  -rank_and_repair([Proj|T], OldProj, TopRank, WinningProj, RepairInstr,
  -               MemberRank, N)
  -  when is_record(projection, Proj) ->
  -    AuthorRank = orddict:fetch(Proj#projection.author_server, MemberRank),
  -    left off here..........
  -
  -
  +rank_and_repair([{FLU, Proj}|T], OldProj, TopRank, WinningProj,
  +                RepairInstr, MemberRank, N)
  +  when is_record(Proj, projection) ->
  +    case rank_projection(Proj, MemberRank, N) of
  +        Rank when Rank == TopRank ->
  +            rank_and_repair(T, OldProj, TopRank, Proj,
  +                            RepairInstr, MemberRank, N);
  +        _Rank ->
  +            rank_and_repair(T, OldProj, TopRank, WinningProj,
  +                            [FLU|RepairInstr], MemberRank, N)
  +    end;
  +rank_and_repair([{FLU, _SomeError}|T], OldProj, TopRank, WinningProj,
  +                RepairInstr, MemberRank, N) ->
  +    ?D({?LINE, _SomeError}),
  +    rank_and_repair(T, OldProj, TopRank, WinningProj,
  +                    [FLU|RepairInstr], MemberRank, N).
  +    
  +
  +rank_projection(#projection{author_server=Author,
  +                            upi=UPI_list,
  +                            repairing=Repairing_list}, MemberRank, N) ->
  +    AuthorRank = orddict:fetch(Author, MemberRank),
  +    AuthorRank +
  +        (1*N + length(Repairing_list)) +
  +        (2*N + length(UPI_list)).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  
positive.code: handle_call({calculate_projection_internal_old}, _From, S) ->
      {Reply, S2} = calc_projection(S, [{author_proc, call}]),
      {reply, Reply, S2};
  handle_call({sync_projection_calculation}, _From, S) ->
      {P, S2} = calc_projection(S, [{author_proc, cast}]),
      {reply, {ok, P}, S2};
  handle_call({cl_write_current_projection}, _From, S) ->
      {Res, S2} = do_cl_write_current_proj(S),
      {reply, Res, S2};
  
negative.code:             {{mixed_bag, lists:zip(FLUs, Rs)}, S}
      end.
  
  cl_read_public_proj(#ch_mgr{proj=Proj}=S, ReadRepairP) ->
      #projection{all_members=All_list} = Proj,
      {_UpNodes, Partitions, S2} = calc_up_nodes(S),
      DoIt = fun(X) ->
  