anchor.diff:                             message)
           finally (client-delete client)))
   
  -
   (defun client-reader (client)
     (handler-case (client-reader-routine client)
       (end-of-file () (client-delete client))))
   
  -
   (defun create-client (connection)
  -  (debug-format t "Incoming connection from ~{~a~^.~}\:~a ~%"
  -                (map 'list #'identity (get-peer-address connection))
  -                (get-peer-port connection))
  +  (debug-format t "Incoming connection from ~a ~%" (socket-id connection))
     (let ((client-stream (socket-stream connection)))
       (write-line "> Type your username: " client-stream)
       (finish-output client-stream)
       (let ((client (make-client :name (read-line client-stream)
  -                              :socket connection)))
  +                               :socket connection)))
         (sb-thread:with-mutex (*client-mutex*)
  -        (debug-format t "Added new user ~s ~%" (client-name client))
  +        (debug-format t "Added new user ~a@~a ~%"
  +                      (client-name client)
  +                      (client-id client))
           (push client *clients*))
         (push-message "@server" (format nil "The user ~s joined to the party!" (client-name client)))
         (sb-thread:make-thread #'client-reader
                                :name (format nil "~a reader thread" (client-name client))
                                :arguments (list client)))))
  -
   
   (defun message-broadcast ()
     (loop when (sb-thread:wait-on-semaphore *message-semaphore*)
  
positive.code: (defstruct client name socket)
  
  
  (defun client-stream (c)
    (socket-stream (client-socket c)))
  
  
negative.code:     (sb-thread:signal-semaphore *message-semaphore*)))
  
  (defun client-delete (client)
    (sb-thread:with-mutex (*client-mutex*)
      (setf *clients* (remove-if (lambda (c)
                                   (equal (client-id c)
                                          (client-id client)))
                                 *clients*)))
    (push-message "@server" (format nil "The user ~s exited from the party :("
                                    (client-name client)))
    (debug-format t "Deleted user ~a@~a~%"
                  (client-name client)
                  (client-id client))
    (socket-close (client-socket client)))
  
  (defun send-message (client message)
    (let ((stream (client-stream client)))
      (write-line message stream)
      (finish-output stream)))
  
  (defun client-reader-routine (client)
    (loop for message = (read-line (client-stream client))
  