Merged from miles@gnu.org--gnu-2005 (patch 169-173, 671-676)