After I implemented message-generate-hashcash, it turned out that the manual needed almost no changes. Here is the changelog: 2004-11-14 Magnus Henoch * hashcash.el (hashcash-default-payment): Change default to 20 (hashcash-default-accept-payment): Change default to 20 (hashcash-process-alist): New variable (hashcash-generate-payment-async): Add (hashcash-already-paid-p): Add (hashcash-insert-payment): Don't generate payments twice (hashcash-insert-payment-async): Add (hashcash-insert-payment-async-2): Add (hashcash-cancel-async): Add (hashcash-wait-async): Add (hashcash-processes-running-p): Add (hashcash-wait-or-cancel): Add (mail-add-payment): New optional argument. Conditionally start asynchronous calculation. (mail-add-payment-async): Add * message.el (message-send-mail): Wait for asynchronous hashcash results. Don't clobber existing X-Hashcash headers. (message-setup-1): Call mail-add-payment-async when message-generate-hashcash is non-nil. * gnus.texi (Hashcash): New default value of hashcash-default-payment. Magnus