In order to replace some assembler and REXX code with portable PASCAL code, a number of changes to list caching have been made in version 1.8a. These changes also bring very significant performance improvements for large lists, especially in terms of I/O, for the list management functions that are now written in PASCAL (ADD, SUBSCRIBE, QUERY, SET, etc). For instance, a QUIET ADD to a 5000-users list only results in about 10 I/O operations rather than 300 (as usual, only the second and subsequent operations after a reboot benefit from this caching). Functions implemented in REXX that do their own I/O to the LIST files do not, unfortunately, benefit from these improvements. As a result of these changes, a number of unsupported list management practices that used to work in previous versions will no longer be available. Unsupported practices that continue to work as before: - Editing the LIST file manually (with XEDIT) while LISTSERV is not running. - Deleting one or more subscribers from a LIST file via XEDIT while LISTSERV is running. - Changing the name (but not the address) of one or more subscribers while LISTSERV is running. - Removing blank lines from the LIST file while LISTSERV is running. Unsupported practices that will no longer work: - Adding new subscribers via XEDIT while LISTSERV is running: LISTSERV may later claim that the new subscribers are not on the list. The same applies to changes made to a subscriber's address. - Altering list header keywords via XEDIT while LISTSERV is running: the changes will not be picked up. - Using the 'listname CACHE' files as a means to obtain information about list header keywords: LISTSERV no longer creates these files, and as before the only supported mechanism for extracting list keywords is to use the LSVKEYWD function, which is a supported permanent programming interface. A temporary programming interface has been provided for cases where you absolutely need to modify LIST files via external programs while LISTSERV is running. You should make the changes as you used to and, after the last change is made and the file has been closed, but before returning control to LISTSERV, do: Call LSVFSI 'HR',listname You could place this instruction in your PROFILE XEDIT, for instance. If you specify '*' for the list name, all lists are affected at once. Eric