The Apollo has a bizarre operating system which does not permit Emacs to be dumped with preloaded pure Lisp code. Therefore, each time you start Emacs on this system, the standard Lisp code is loaded into it. Expect it to take a long time. You can prevent loading of the standard Lisp code by specifying the -nl switch. It must come at the beginning of the command line; only the -t and -batch switches may come before it. You must use m-apollo.h in the config.h file, together with s-bsd4.2.h. There is one remaining problem on the Apollo. The system does not come with a C preprocessor as a separate program. The C compiler can be used in place of cpp, but you must fool it into thinking that ymakefile is a C program. This requires replacing the rule for xmakefile in src/Makefile with the following: xmakefile: ymakefile config.h rm -f xmakefile cp ymakefile ymakefile.c (cc -E ymakefile.c | sed -e 's/^#.*//' -e 's/^[ \f ]$$//' -e 's/^ / /' | \ sed -n -e '/^..*$$/p' > xmakefile) rm ymakefile.c It has also been suggested that you change etc/Makefile not to make loadst.c. I think it would be better to fix loadst.c than to turn it off, but nobody has told me what, if any, problem it encounters. Here is a design for a method of dumping and reloading the relevant necessary impure areas of Emacs. On dumping, you need to dump only the array `pure' plus the locations that contain values of forwarded Lisp variables or that are protected for garbage collection. The former can be found by a garbage- collection-like technique, and the latter are in the staticprolist vector (see alloc.c for both things). Reloading would work in an Emacs that has just been started; except when a switch is specified to inhibit this, it would read the dump file and set all the appropriate locations. The data loaded must be relocated, but that's not hard. Those locations that are of type Lisp_Object can be found by a technique like garbage-collection, and those of them that point to storage can be relocated. The other data read from the file will not need to be relocated. The switch to inhibit loading the data base would be used when it is time to dump a new data base. This would take a few seconds, which is much faster than loading the Lisp code of Emacs from scratch.