diff --git a/src/compute_chunk_atom.cpp b/src/compute_chunk_atom.cpp
index dcfd2ff131c1526b79175b15c92482e9cf1c8b29..aa1210caadf1f7247006daecdc7763a095a8b25f 100644
--- a/src/compute_chunk_atom.cpp
+++ b/src/compute_chunk_atom.cpp
@@ -712,13 +712,14 @@ void ComputeChunkAtom::compute_ichunk()
     return;
   }
 
-  invoked_ichunk = update->ntimestep;
-
   // assign chunk IDs to atoms
   // will exclude atoms not in group or in optional region
   // already invoked if this is same timestep as last setup_chunks()
+  // however, when between runs or using rerun, we need it again.
 
-  if (update->ntimestep > invoked_setup) assign_chunk_ids();
+  if ((update->ntimestep > invoked_setup) || (invoked_ichunk < 0)) assign_chunk_ids();
+
+  invoked_ichunk = update->ntimestep;
 
   // compress chunk IDs via hash of the original uncompressed IDs
   // also apply discard rule except for binning styles which already did