anchor.diff:  reuse_or_create_proxied_session(SessId, ProxyVia, Auth, SessionType) ->
       case user_identity:get_or_fetch(Auth) of
           {ok, #document{value = #user_identity{} = Iden}} ->
  -            reuse_or_create_session(SessId, SessionType, Iden, Auth, ProxyVia);
  +            critical_section:run([?MODULE, SessId], fun() ->
  +                reuse_or_create_session(SessId, SessionType, Iden, Auth, ProxyVia)
  +            end);
           Error ->
               Error
       end.
  
positive.code:     session:identity(), session:auth() | undefined) ->
      {ok, SessId :: session:id()} | error().
  reuse_or_create_session(SessId, SessType, Iden, Auth) ->
      reuse_or_create_session(SessId, SessType, Iden, Auth, undefined).
  
  
  %%%===================================================================
  
negative.code: -spec reuse_or_create_outgoing_provider_session(session:id(),
      session:identity()) -> {ok, session:id()} | error().
  reuse_or_create_outgoing_provider_session(SessId, Iden) ->
      reuse_or_create_session(SessId, provider_outgoing, Iden, undefined).
  
  %%--------------------------------------------------------------------
  %% @doc
  