I wrote this to the Tramp and Gnus mailing lists: "imap-hash.el lets you treat an IMAP mailbox as a hash. It lets you get individual keys' headers and body data (keys are message UIDs) or map a function across *all the messages in the mailbox*. The function is only called for those that match a given subject, but really I should be using SEARCH. So the library is not optimized for speed. Also, it does not handle invalid mailbox names gracefully yet. Consider it an alpha version. I plan to eventually use imap-hash.el to store distributed Gnus data, specifically the Gnus registry, the newsrc file, scoring files, etc. tramp-imap.el uses imap-hash.el to provide a Tramp interface to read and write files as messages in an IMAP mailbox. It's also an alpha version, but it will at least let you (given a valid IMAP mailbox) read and write directory contents. It uses EPG (thanks to Daiki Ueno's help) to encrypt the file contents when they are stored as messages." I would like to put imap-hash.el in lisp/net/imap-hash.el if possible, to support Gnus and Tramp from one location. Is that OK? It would make my life easier and others can use the library if they wish. See attached. Thanks Ted