diff -u -L /opt/free.APPS/emacs/share/emacs/23.0.0/lisp/erc/erc.el.gz -L /tmp/buffer-content-31278IO2 /tmp/jka-com312786XF /tmp/buffer-content-31278IO2 --- /opt/free.APPS/emacs/share/emacs/23.0.0/lisp/erc/erc.el.gz +++ /tmp/buffer-content-31278IO2 @@ -1673,21 +1673,22 @@ (require 'iswitchb)) (let ((enabled iswitchb-mode)) (or enabled (iswitchb-mode 1)) - (let ((iswitchb-make-buflist-hook - (lambda () - (setq iswitchb-temp-buflist - (mapcar 'buffer-name - (erc-buffer-list - nil - (when arg erc-server-process))))))) - (switch-to-buffer - (iswitchb-read-buffer - "Switch-to: " - (if (boundp 'erc-modified-channels-alist) - (buffer-name (caar (last erc-modified-channels-alist))) - nil) - t))) - (or enabled (iswitchb-mode -1)))) + (unwind-protect + (let ((iswitchb-make-buflist-hook + (lambda () + (setq iswitchb-temp-buflist + (mapcar 'buffer-name + (erc-buffer-list + nil + (when arg erc-server-process))))))) + (switch-to-buffer + (iswitchb-read-buffer + "Switch-to: " + (if (boundp 'erc-modified-channels-alist) + (buffer-name (caar (last erc-modified-channels-alist))) + nil) + t))) + (or enabled (iswitchb-mode -1))))) (defun erc-channel-list (proc) "Return a list of channel buffers. Diff finished. Sat Dec 16 23:41:15 2006