Multithreading makes it hard to use cyclic debugging techniques, due to the non-determinism related to the concurrent behaviour of such applications. A well known solution consists of recording an execution and debugging it during replay. In order to produce a faithful replay, the recorded information needs to contain enough information to cover all non-deterministic choices. Java has an extra source of non-determinism that is related to the garbage collector of the JVM. This non-determinism could further influence the application, for instance in the presence of address-based hashing techniques. The full paper discusses the problems that arise herefrom and contains a description of the solutions we developed in order to realize a fully operational memory management replay module, based on the scheduling replay of DejaVu.