diff --git a/src/engine.c b/src/engine.c
index 4e46fc5d6e2fb6d2df31602daa63e1fd60920228..a747eac4007cba40cb6d4a929181a5bc9224f4e1 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -1014,7 +1014,7 @@ void engine_exchange_strays(struct engine *e, size_t offset_parts,
       for (int k = 0; k < p->nr_gparts_in; k++) {
         struct gpart *gp = &s->gparts[offset_gparts + count_gparts + k];
         if (gp->id >= 0) {
-          struct part *p = &s->parts[offset_gparts + count_parts + gp->id];
+          struct part *p = &s->parts[offset_parts + count_parts + gp->id];
           gp->part = p;
           p->gpart = gp;
         }