WaveMoL's IDWaveMoL thorn only sets up ID on the current timelevel. However the gaussian.par test using radiative boundary conditions which require valid values on the previous timelevel. With PUGH it seems that these values are usually zero (either because PUGH clears memory or because malloc() does). With Carpet however, poisoning is the default and one finds that NaNs show up from the boundary, one per timestep.
This can be avoided by setting mol::initial_data_is_crap = yes (or the equivalent Carpet parameter if one uses Carpet) in the parfile.