More information: if I do a mlton -stop g and then a mlton on the .c and .S files, it takes no time at all to do the gcc part, but if I run the whole thing as one big mlton job, gcc swaps like mad. I can work around this, but is there perhaps a bug in the way mlton does it forking? Neal