diff --git a/examples/dem_sd.py b/examples/dem_sd.py
index d1a78d946e990dec7f4e55d3b8878efef3b65077..ac565069a96272012c953b5c99fbaf10a3d9167d 100644
--- a/examples/dem_sd.py
+++ b/examples/dem_sd.py
@@ -101,7 +101,7 @@ psim = pairs.simulation(
     use_contact_history=False,
     particle_capacity=1000000,
     neighbor_capacity=20,
-    debug=True, generate_whole_program=True)
+    debug=True, generate_whole_program=False)
 
 if target == 'gpu':
     psim.target(pairs.target_gpu())
diff --git a/src/pairs/ir/device.py b/src/pairs/ir/device.py
index 952ff1429c9eb45dd47bc40edcb2d3b53fb09f38..d7cb0d1cb5b4741ebc9b0775a9e322407aad2d18 100644
--- a/src/pairs/ir/device.py
+++ b/src/pairs/ir/device.py
@@ -72,7 +72,7 @@ class CopyProperty(ASTNode):
         return self._action
 
     def children(self):
-        return [self._prop]
+        return [self._prop, self.sim.nghost, self.sim.nlocal]
 
 
 class CopyContactProperty(ASTNode):
diff --git a/src/pairs/sim/comm.py b/src/pairs/sim/comm.py
index 119e432bc77f8bf2dfaee3ca80129f95af6ff4b4..6ca1fc8a071ae38c233b111d213e8dcce3e4e8f3 100644
--- a/src/pairs/sim/comm.py
+++ b/src/pairs/sim/comm.py
@@ -394,7 +394,6 @@ class PackGhostParticlesReverse(Lowerable):
     @pairs_device_block
     def lower(self):
         nlocal = self.sim.nlocal
-        nghost = self.sim.nghost
         send_buffer_reverse = self.comm.send_buffer_reverse
         send_buffer_reverse.set_stride(1, self.get_elems_per_particle())
 
diff --git a/src/pairs/transformations/__init__.py b/src/pairs/transformations/__init__.py
index 469133cc334c6df99e0247e4f9728ab23592f705..36df8512d6f047ec6ef8de764e14854aad618311 100644
--- a/src/pairs/transformations/__init__.py
+++ b/src/pairs/transformations/__init__.py
@@ -73,6 +73,7 @@ class Transformations:
     def add_device_copies(self):
         if self._target.is_gpu():
             self.apply(AddDeviceCopies(), [self._module_resizes])
+            self.analysis().fetch_modules_references()
 
     def add_device_kernels(self):
         if self._target.is_gpu():