And something like (defun rs-is-mid (mid-or-mail) (string-match "-> m-id$" (with-temp-buffer (insert (concat "<" mid-or-mail ">")) (call-process-region (point-min) (point-max) shell-file-name t (list (current-buffer) nil) nil shell-command-switch "/home/rscholz/bin/id-or-mail.pl") (buffer-string)))) (setq gnus-button-prefer-mid-or-mail 'is-mid) I'm not sure whether funcall should be protected with something like `save-window-excursion'. Cheers, Ray -- http://www.zonix.de/ - (c) 2000 by Yamtaijika Corp.