anchor.diff:  %% the accepting watchdog upon reception of a CER from the previously
   %% connected peer, or us after reconnect_timer timeout.
   
  -close(#peer{type = connect}, _) ->
  +close(#watchdog{type = connect}, _) ->
       ok;
  -close(#peer{type = accept,
  -            pid = Pid,
  -            ref = Ref,
  -            options = Opts},
  +close(#watchdog{type = accept,
  +                pid = Pid,
  +                ref = Ref,
  +                options = Opts},
         #state{service_name = SvcName}) ->
       c(Pid, diameter_config:have_transport(SvcName, Ref), Opts).
   
  
positive.code: %% Watchdog has recovered as suspect connection. Note that there has
  %% been no new capabilties exchange in this case.
  
  connection_up(#peer{conn = TPid} = P, #state{connT = ConnT} = S) ->
      connection_up([], P, fetch(ConnT, TPid), S).
  
  %% connection_up/4
  
  connection_up(Extra,
                #peer{conn = TPid}
                = P,
                #conn{apps = SApps, caps = Caps}
                = C,
                #state{peerT = PeerT,
                       local_peers = LDict,
                       service_name = SvcName,
                       service
                       = #diameter_service{applications = Apps}}
                = S) ->
      insert(PeerT, P#peer{wd_state = ?WD_OKAY}),
      request_peer_up(TPid),
      insert_local_peer(SApps, {{TPid, Caps}, {SvcName, Apps}}, LDict),
      report_status(up, P, C, S, Extra).
  
  insert_local_peer(SApps, T, LDict) ->
      lists:foldl(fun(A,D) -> ilp(A, T, D) end, LDict, SApps).
  
negative.code: 
  %% start/4
  
  start(Ref, Type, Opts, #state{watchdogT = WatchdogT,
                                peerT = PeerT,
                                options = SvcOpts,
                                service_name = SvcName,
                                service = Svc})
    when Type == connect;
         Type == accept ->
      Pid = s(Type, Ref, {PeerT,
                          Opts,
                          SvcName,
                          SvcOpts,
                          merge_service(Opts, Svc)}),
      insert(WatchdogT, #watchdog{pid = Pid,
                                  type = Type,
                                  ref = Ref,
                                  options = Opts}),
      Pid.
  
  %% Note that the service record passed into the watchdog is the merged
  