I've got a problem with timers in gpg.el in XEmacs. I regularly get the message: itimer named "itimer-0" already existing and activated The problem is that the value of gpg-passpthrase-timer is cached, the implementation in XEmacs seems to require that a canceled timer is not used anymore. The next time a new timer is used, in my case by perl, it reuses the name "itimer-0", and then gpg get's a problem... I'm appending a patch that solved the problem for me, Andreas 2001-08-07 Andreas Jaeger * gpg.el (gpg-passphrase-forget): Don't cache gpg-passphrase-timer. (gpg-passphrase-store): Check if gpg-passphrase-timer is initialized already. Index: gpg.el =================================================================== RCS file: /usr/local/cvsroot/gnus/contrib/gpg.el,v retrieving revision 1.14 diff -u -p -r1.14 gpg.el --- gpg.el 2001/07/30 23:04:20 1.14 +++ gpg.el 2001/08/07 12:44:03 @@ -801,6 +801,7 @@ evaluates BODY, like `progn'. If BODY e "Forget stored passphrase." (interactive) (cancel-timer gpg-passphrase-timer) + (setq gpg-passphrase-timer nil) (gpg-passphrase-clear-string gpg-passphrase) (setq gpg-passphrase nil)) @@ -808,6 +809,8 @@ evaluates BODY, like `progn'. If BODY e "Store PASSPHRASE in cache. Updates the timeout for clearing the cache to `gpg-passphrase-timeout'." (unless (equal gpg-passphrase-timeout 0) + (if (null gpg-passphrase-timer) + (setq gpg-passphrase-timer (timer-create))) (timer-set-time gpg-passphrase-timer (timer-relative-time (current-time) gpg-passphrase-timeout)) -- Andreas Jaeger SuSE Labs aj@suse.de private aj@arthur.inka.de http://www.suse.de/~aj