anchor.diff:  				    :server "irc.cat.pdx.edu"
   				    :port 6697
   				    :connection-security :ssl)))
  -  (let ((auth-file (open "auth.dat")))
  -    (let ((auth-data (read auth-file)))
  -      (irc:join *connection* channel :password (getf auth-data :key)))
  -    (close auth-file))
  -  (irc:add-hook *connection* 'irc:irc-privmsg-message #'message-received-hook)
  +  (if auth-required
  +      (let ((auth-file (open "auth.dat")))
  +	(let ((auth-data (read auth-file)))
  +	  (irc:join *connection* channel :password (getf auth-data :key)))
  +	(close auth-file))
  +      (irc:join *connection* channel))
  +  (irc:add-hook *connection* 'irc:irc-privmsg-message (lambda (m) (update-swank) (message-received-hook m)))
     (irc:read-message-loop *connection*))
  
positive.code:     (ql:quickload :cl-irc)
      (ql:quickload :cl+ssl)
      (ql:quickload :split-sequence)
      (ql:quickload :trivial-shell)))
  
  (defpackage :lispbot (:use :common-lisp :irc :cl+ssl :split-sequence)
  	    (:export #:run #:part))
  
negative.code:     (irc:quit *connection*)
      (setf *connection* nil)))
  
  (defparameter *gonna-quit* nil)
  
  ;; a "hook" is some sort of function that we run in response to an event
  ;; this one happens to take one parameter that is filled in with a message by cl-irc
  (defun message-received-hook (message)
  