anchor.diff:      down = S,  %% sanity check
       stop;
   transition({shutdown = T, Pid}, #watchdog{parent = Pid,
  -                                          transport = TPid}) ->
  +                                          transport = TPid}
  +                                = S) ->
       TPid ! {T, self()},
  -    ok;
  +    S#watchdog{shutdown = true};
   
   %% Parent process has died,
   transition({'DOWN', _, process, Pid, _Reason},
  
positive.code: -record(watchdog,
          {%% PCB - Peer Control Block; see RFC 3539, Appendix A
           status = initial :: initial | okay | suspect | down | reopen,
           pending = false  :: boolean(),
           tw :: 6000..16#FFFFFFFF | {module(), atom(), list()},
                                  %% {M,F,A} -> integer() >= 0
           num_dwa = 0 :: -1 | non_neg_integer(),
                       %% number of DWAs received during reopen
           %% end PCB
           parent = self() :: pid(),
           transport       :: pid() | undefined,
           tref :: reference(), %% reference for current watchdog timer
           message_data,      %% term passed into diameter_service with message
           sequence :: diameter:sequence(),     %% mask
           restrict :: {diameter:restriction(), boolean()}}).
  
  %% start/2
  %%
  
negative.code: 
  transition({'DOWN', _, process, TPid, _},
             #watchdog{transport = TPid,
                       status = S,
                       shutdown = D})
    when S == initial;
         D ->
      stop;
  
  transition({'DOWN', _, process, TPid, _},
  