anchor.diff:  
   
   -record(app_info, {
  -    index :: {App::nksip:app_id(), Ref::term()}, 
  +    index :: {nksip:app_id(), server_ref()}, 
       dispatch = [] :: list(),
       mon :: reference()
   }).
  
positive.code:         {value, #server_info{apps=WebApps, pid=WebPid}=Server, Servers1} ->
              Apps1 = case lists:keytake({AppId, Ref}, #app_info.index, Apps) of
                  false -> 
                      Apps;
                  {value, #app_info{mon=AppMon}, RestApps} ->
                      erlang:demonitor(AppMon),
                      RestApps
              end,
              Apps2 = [App|Apps1],
              do_update_server(Ref, Apps2),
              WebApps1 = nksip_lib:store_value(AppId, WebApps),
              Server1 = Server#server_info{apps=WebApps1},
              State1 = State#state{
                  servers = [Server1|Servers1], 
                  apps = Apps2
              },
              {reply, {ok, WebPid}, State1}
      end;
  
  handle_call({stop, AppId, Ref}, _From, State) ->
  
negative.code: %% ===================================================================
  
  -record(server_info, {
      ref :: server_ref(),
      apps = [] :: [nksip:app_id()],
      dispatch = [] :: list(),
      pid :: pid(), 
  