Garbage collection algorithms that do not require tagging of data have been around since the early days of LISP. With the emergence of strongly-typed languages that require heap allocation, interest in tag-free garbage collection has increased. Several papers published recently describe methods for performing tag-free copying garbage collection by retaining compile-time type information at run time. However, all of these algorithms have the “stop and collect” property, in which program execution is suspended for a significant amount of time during garbage collection. For many programs an incremental garbage collection method, in which the garbage collection overhead is spread evenly throughout the computation, is desirable. Methods for incremental copying garbage collection have been around since the 1970's. However, these algorithms (the most notable of which is Baker's algorithm) rely on tagged data. In this paper, we present a method for performing incremental copying garbage collection without tags. We then extend this method to work for polymorphically typed languages, and to provide breadth-first copying for improved performance and data locality.