(if operator
                (setq status (cons "operator" status)))
            (riece-user-toggle-away user away)
-           (riece-emit-signal 'riece-user-toggle-away
+           (riece-emit-signal 'user-away-changed
                               (riece-make-identity user riece-server-name)
                               away)
            (riece-user-toggle-operator user operator)
-           (riece-emit-signal 'riece-user-toggle-operator
+           (riece-emit-signal 'user-operator-changed
                               (riece-make-identity user riece-server-name)
                               operator)
            (riece-insert-info
       (let ((user (match-string 1 string))
            (message (substring string (match-end 0))))
        (riece-user-toggle-away user t)
-       (riece-emit-signal 'riece-user-toggle-away
+       (riece-emit-signal 'user-away-changed
                           (riece-make-identity user riece-server-name)
                           t)
        (riece-insert-info
 
 (defun riece-handle-305-message (prefix number name string)
   (riece-user-toggle-away riece-real-nickname nil)
-  (riece-emit-signal 'riece-user-toggle-away
+  (riece-emit-signal 'user-away-changed
                      (riece-make-identity riece-real-nickname
                                           riece-server-name)
                      nil))
 
 (defun riece-handle-306-message (prefix number name string)
   (riece-user-toggle-away riece-real-nickname t)
-  (riece-emit-signal 'riece-user-toggle-away
+  (riece-emit-signal 'user-away-changed
                     (riece-make-identity riece-real-nickname
                                          riece-server-name)
                     t))
        (while modes
          (riece-channel-toggle-mode channel (car modes) (eq toggle ?+))
          (setq modes (cdr modes)))
-       (riece-emit-signal 'riece-channel-toggle-modes
+       (riece-emit-signal 'channel-modes-changed
                           (riece-make-identity channel riece-server-name)
                           modes (eq toggle ?+))
        (let* ((channel-identity (riece-make-identity channel
                     (riece-format-identity channel-identity t)
                     message))
            "\n")))
-       (riece-emit-signal 'riece-channel-set-topic
+       (riece-emit-signal 'channel-topic-changed
                            channel-identity
                            (unless remove
                              message)))))
            (setq status (nreverse status)))
        (riece-naming-assert-join nick channel)
        (riece-user-toggle-away user away)
-       (riece-emit-signal 'riece-user-toggle-away
+       (riece-emit-signal 'user-away-changed
                           (riece-make-identity user riece-server-name)
                           away)
        (riece-user-toggle-operator user operator)
-       (riece-emit-signal 'riece-user-toggle-operator
+       (riece-emit-signal 'user-operator-changed
                           (riece-make-identity user riece-server-name)
                           operator)
        (riece-insert-info buffer (concat (riece-concat-user-status
 
 
 (defun riece-display-connect-signals ()
   (riece-connect-signal
-   'riece-update-buffer
+   'channel-list-changed
    (lambda (signal handback)
      (save-excursion
-       (set-buffer (car (riece-signal-args signal)))
+       (set-buffer riece-channel-list-buffer)
+       (run-hooks 'riece-update-buffer-functions))
+     (riece-update-channel-list-indicator)))
+  (riece-connect-signal
+   'user-list-changed
+   (lambda (signal handback)
+     (save-excursion
+       (set-buffer riece-user-list-buffer)
        (run-hooks 'riece-update-buffer-functions))))
   (riece-connect-signal
-   'riece-switch-to-channel
+   'channel-switched
    (lambda (signal handback)
      (riece-update-status-indicators)
      (riece-update-channel-indicator)
      (riece-update-long-channel-indicator)
-     (riece-update-channel-list-indicator)
      (force-mode-line-update t)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer)
-     (riece-emit-signal 'riece-update-buffer riece-channel-list-buffer)
+     (riece-emit-signal 'channel-list-changed)
+     (riece-emit-signal 'user-list-changed)
      (save-excursion
        (riece-redraw-layout))))
   (riece-connect-signal
-   'riece-naming-assert-channel-users
-   (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer)))
-  (riece-connect-signal
-   'riece-naming-assert-join
+   'user-joined-channel
    (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer))
+     (riece-emit-signal 'user-list-changed))
    (lambda (signal)
      (and riece-current-channel
          (riece-identity-equal (nth 1 (riece-signal-args signal))
          (not (riece-identity-equal (car (riece-signal-args signal))
                                     (riece-current-nickname))))))
   (riece-connect-signal
-   'riece-naming-assert-join
+   'user-joined-channel
    (lambda (signal handback)
      (riece-join-channel (nth 1 (riece-signal-args signal)))
      (riece-switch-to-channel (nth 1 (riece-signal-args signal)))
      (riece-identity-equal (car (riece-signal-args signal))
                           (riece-current-nickname))))
   (riece-connect-signal
-   'riece-naming-assert-part
+   'user-left-channel
    (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer))
+     (riece-emit-signal 'user-list-changed))
    (lambda (signal)
      (and riece-current-channel
          (riece-identity-equal (nth 1 (riece-signal-args signal))
          (not (riece-identity-equal (car (riece-signal-args signal))
                                     (riece-current-nickname))))))
   (riece-connect-signal
-   'riece-naming-assert-part
+   'user-left-channel
    (lambda (signal handback)
      (riece-part-channel (nth 1 (riece-signal-args signal))))
    (lambda (signal)
      (riece-identity-equal (car (riece-signal-args signal))
                           (riece-current-nickname))))
   (riece-connect-signal
-   'riece-naming-assert-rename
+   'user-renamed
    (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer))
+     (riece-emit-signal 'user-list-changed))
    (lambda (signal)
      (and riece-current-channel
          (equal (riece-identity-server (nth 1 (riece-signal-args signal)))
                                       riece-current-channel))
             t)))))
   (riece-connect-signal
-   'riece-naming-assert-rename
+   'user-renamed
    (lambda (signal handback)
      (riece-update-status-indicators)
      (riece-update-channel-indicator)
      (riece-identity-equal (nth 1 (riece-signal-args signal))
                           (riece-current-nickname))))
   (riece-connect-signal
-   'riece-naming-assert-rename
+   'user-renamed
    (lambda (signal handback)
      (riece-switch-to-channel (nth 1 (riece-signal-args signal))))
    (lambda (signal)
          (riece-identity-equal (car (riece-signal-args signal))
                                riece-current-channel))))
   (riece-connect-signal
-   'riece-naming-assert-rename
+   'user-renamed
    (lambda (signal handback)
      (let* ((old-identity (car (riece-signal-args signal)))
            (new-identity (nth 1 (riece-signal-args signal)))
                                                   riece-channel-buffer-alist)
                             riece-channel-buffer-alist))))))))
   (riece-connect-signal
-   'riece-user-toggle-away
+   'user-away-changed
    (lambda (signal handback)
      (riece-update-status-indicators)
      (force-mode-line-update t))
      (riece-identity-equal (car (riece-signal-args signal))
                           (riece-current-nickname))))
   (riece-connect-signal
-   'riece-user-toggle-operator
+   'user-operator-changed
    (lambda (signal handback)
      (riece-update-status-indicators)
      (force-mode-line-update t))
      (riece-identity-equal (car (riece-signal-args signal))
                           (riece-current-nickname))))
   (riece-connect-signal
-   'riece-channel-set-topic
+   'channel-topic-changed
    (lambda (signal handback)
      (riece-update-long-channel-indicator)
      (force-mode-line-update t))
          (riece-identity-equal (car (riece-signal-args signal))
                                riece-current-channel))))
   (riece-connect-signal
-   'riece-channel-set-modes
+   'channel-modes-changed
    (lambda (signal handback)
      (riece-update-status-indicators)
      (force-mode-line-update t))
          (riece-identity-equal (car (riece-signal-args signal))
                                riece-current-channel))))
   (riece-connect-signal
-   'riece-channel-toggle-operator
+   'channel-operators-changed
    (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer))
+     (riece-emit-signal 'user-list-changed))
    (lambda (signal)
      (and riece-current-channel
          (riece-identity-equal (car (riece-signal-args signal))
                                riece-current-channel))))
   (riece-connect-signal
-   'riece-channel-toggle-speaker
+   'channel-speakers-changed
    (lambda (signal handback)
-     (riece-emit-signal 'riece-update-buffer riece-user-list-buffer))
+     (riece-emit-signal 'user-list-changed))
    (lambda (signal)
      (and riece-current-channel
          (riece-identity-equal (car (riece-signal-args signal))
                                riece-current-channel))))
   (riece-connect-signal
-   'riece-buffer-toggle-freeze
+   'buffer-freeze-changed
    (lambda (signal handback)
      (riece-update-status-indicators)
      (force-mode-line-update t))))
     (setq riece-current-channel identity
          riece-channel-buffer (riece-channel-buffer riece-current-channel))
     (run-hook-with-args 'riece-after-switch-to-channel-functions last)
-    (riece-emit-signal 'riece-switch-to-channel)))
+    (riece-emit-signal 'channel-switched)))
 
 (defun riece-join-channel (identity)
   (unless (riece-identity-member identity riece-current-channels)
       (let ((last riece-current-channel))
        (run-hook-with-args 'riece-after-switch-to-channel-functions last)
        (setq riece-current-channel nil)
-       (riece-emit-signal 'riece-switch-to-channel)))))
+       (riece-emit-signal 'channel-switched)))))
 
 (defun riece-part-channel (identity)
   (let ((pointer (riece-identity-member identity riece-current-channels)))