We treat two important issues in heap garbage collection for WAM-based Prolog systems. First we describe a new method for
preserving the order of heap segments in a copying garbage collector. Second, we deal with methods for (multi-)generational
garbage collection; in particular we show the importance of precise maintenance of generation lines and propose different
and novel ways for its implementation. All the methods are experimentally evaluated.