anchor.diff:    (dbind (name &rest a &key spin &allow-other-keys) args
       (declare (ignorable name a))
       `(unwind-protect
  -	  (restart-case 
  -	      (progn
  -		(start-ros-node ,@args)
  -		,@body
  -		,@(when spin `((spin-until nil 100))))
  -	    (shutdown-ros-node (&optional a) (ros-info (roslisp top) "About to shutdown~:[~; due to condition ~:*~a~]" a)))
  +          (restart-case 
  +              (progn
  +                (start-ros-node ,@args)
  +                ,@body
  +                ,@(when spin `((spin-until nil 100))))
  +            (shutdown-ros-node (&optional a) (ros-info (roslisp top) "About to shutdown~:[~; due to condition ~:*~a~]" a)))
          (shutdown-ros-node))))
   
   
  
positive.code:       (sb-thread:make-thread 
         #'(lambda ()
  
  	   (when (eq *node-status* :running) 
  	     (error "Can't start node as status already equals running.  Call shutdown-ros-node first."))
  
  
  	   ;; Start publication and xml-rpc servers.  
             (mvbind (srv sock) (start-xml-rpc-server :port 0)
               (setq *xml-server* srv
                     xml-rpc-port (nth-value 1 (sb-bsd-sockets:socket-name sock))))
  
negative.code:     (when *use-sim-time*
        (setq *last-clock* nil)
        (subscribe "/clock" "roslib/Clock" #'(lambda (m) (setq *last-clock* m))
                   :max-queue-length 5))
  
      ;; Advertise reset-debug-levels service
      (register-service-fn "~reset_debug_levels" #'reset-debug-levels 'Empty)
  