We have implemented a concurrent copying garbage collector that uses replicatinggarbage collection. In our design, the client can continuously access the heap during garbage collection. No low-level synchronization between the client and the garbage collector is required on individual object operations. The garbage collector replicates live heap objects and periodicallysynchronizes withthe client to obtainthe client's current root set and mutation log. An experimental implementation using the Standard ML of New Jersey system on a shared-memory multiprocessordemonstrates excellent pause time performance and moderate execution time speedups.