anchor.diff:      (unstarted
        (cond
          ((message-target-is-channel-p message)
  -        (start-werewolf-game module (source message))
  -        (reply-to message "~a has started a new werewolf game.  Type .ww start to join in."))
  +        (start-werewolf-game module (first (arguments message)))
  +        (add-werewolf-player module (source message))
  +        (reply-to message "~a has started a new werewolf game.  Type .ww start to join in." (source message)))
          (t
           (reply-to message "You must start a new game on a channel."))))
       (started
  -     (add-werewolf-player module (source message))
  -     (ww-msg-players module "~a has joined the werewolf game." (source message)))
  +     (cond
  +       ((find-ww-player module (source message))
  +        (reply-to message "You've already entered the werewolf game."))
  +       (t
  +        (add-werewolf-player module (source message))
  +        (ww-msg-players module "~a has joined the werewolf game." (source message)))))
       (t
        (reply-to message "The werewolf game is already underway."))))
   
  
positive.code:     ("vote" (ww-vote-command module message (second args)))
      (t
       (reply-to message "Usage: .ww start|list|vote <nick>"))))
  
  (defun test-ww ()
    (setf *m* (make-instance 'werewolf-module))
    (start-werewolf-game *m* "#ww")
    (add-werewolf-player *m* "Alice")
    (add-werewolf-player *m* "Bob")
    (add-werewolf-player *m* "Mallory")
    (begin-werewolf-game *m*))
negative.code:   (assert (eql (state-of module) 'unstarted))
    (setf (state-of module) 'starting)
    (setf (channel-of module) channel)
    (setf (timer-of module)
          (iolib:add-timer *event-base*
                           (lambda ()
  