* riece-handle.el (riece-handle-privmsg-message): Check own
[riece] / lisp / riece-unread.el
index 47c998a..1356385 100644 (file)
@@ -61,6 +61,7 @@
 
 (defun riece-unread-after-display-message-function (message)
   (unless (or (riece-message-own-p message)
+             (riece-message-type message)
              (riece-identity-equal (riece-message-target message)
                                    riece-current-channel)
              (riece-identity-member (riece-message-target message)
 
 (defun riece-unread-switch-to-channel ()
   (interactive)
-  (if (car riece-unread-channels)
-      (riece-command-switch-to-channel (car riece-unread-channels))
+  (if riece-unread-channels
+      (let ((channel (car riece-unread-channels)))
+       (if (riece-identity-member channel riece-current-channels)
+           (riece-command-switch-to-channel channel)
+         (setq riece-unread-channels
+               (delete channel riece-unread-channels))
+         (riece-unread-switch-to-channel)))
     (error "No unread channel!")))
 
 (defun riece-guess-channel-from-unread ()