While looking into the Emacs garbage collector's stack-overflow problems I noticed several opportunities for improving performance and simplifying the code in minor ways. I plan to install the attached patches to take advantage of these opportunities; although they don't address stack overflow, they can be thought of as a first, cleanup step toward addressing stack overflow. Overall these patches trim about 250 lines from the C source code, and should improve efficiency by not creating objects on the heap to handle stack-related events such as implementing save-excursion. This patch also removes primitives like 'free_misc' that ask for trouble by second-guessing the garbage collector. I'm filing this as a bug report in order to give the patches a bit of time to cool before installing. Comments welcome, as usual.