anchor.diff:           (%without-interrupts
              (when (with-hierarchies-lock
                      (cond (*watcher-thread*
  -                          (%allow-with-interrupts
  +                          (%with-local-interrupts
                               (log-debug "Watcher thread already started") 
                               nil))
                            (t (setq *watcher-thread* (bt:current-thread)))))
  
positive.code:                         (log-error :logger logger "Error in hierarchy watcher thread:~%~A" e))))
                 (with-hierarchies-lock
                   (setf *watcher-thread* nil))
                 (%allow-with-interrupts (log-info :logger logger "Hierarchy watcher thread ended"))))))
         :name "Hierarchy Watcher"
         :initial-bindings
         `((*hierarchy* . 0)
  
negative.code: (defun stop-hierarchy-watcher-thread ()
    (let ((thread (with-hierarchies-lock *watcher-thread*))) 
      (when thread
        (ignore-errors (bt::destroy-thread thread)) 
        (ignore-errors (bt:join-thread thread)))))
  
  (defun maybe-start-watcher-thread ()
  