anchor.diff:                   (<:submit :value "Send"))))
   
   (defun render-logout-button ()
  -  (<:form :class "logout-button" :action "/logout"
  +  (<:form :class "logout-button" :action "/logout" :method "post"
             (<:submit :value "Log Out")))
   
  -(define-easy-handler (home :uri "/") ()
  -  (unless (and *session* (session-value 'account-name))
  -    (redirect "/login"))
  +(define-easy-handler (home :uri "/") (#+nil char)
  +  (ensure-logged-in)
     (with-yaclml-output-to-string
       (<:html
        (<:head
  
positive.code:           (<:submit :value "Submit")))
  
  (define-easy-handler (newchar :uri "/newchar") (name description)
    (unless (and *session* (session-value 'account-name))
      (redirect "/login"))
    (with-yaclml-output-to-string
      (<:html
       (<:head
        (<:title "Character creation")
        (<:script :src "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" :type "text/javascript"))
       (<:body
        (if (emptyp name)
            (render-character-creation-component)
            (multiple-value-bind (createdp errors)
                (create-character (session-value 'account-name) name description)
              (if createdp
                  (progn
                    (format t "~&Character created: ~A~%" name)
                    (redirect "/"))
                  (progn
                    (render-error-messages errors)
                    (render-signup-component)))))))))
  
  (defun render-login-component ()
    (<:form :name "login" :action "/login" :method "post"
  
negative.code:     (when websocket-client
        (disconnect-client websocket-client))))
  
  (defun ensure-logged-in ()
    (unless (and *session* (session-value 'account-name))
      (redirect "/login")))
  
  (defun active-account-sessions (account-name)
    "Finds all sessions that are logged in as ACCOUNT-NAME."
    (loop for (nil . session) in (session-db *server*)
  