diff --git a/src/engine.c b/src/engine.c
index 55221673ded36486282dbb2b52f9dfd046b84291..b07e8a1386842c22c200bdd7241f0a617c60a0d6 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -1420,7 +1420,7 @@ void engine_exchange_strays(struct engine *e, size_t offset_parts,
 
         if (gp->type == swift_type_gas) {
           struct part *p =
-              &s->parts[offset_gparts + count_parts - gp->id_or_neg_offset];
+              &s->parts[offset_parts + count_parts - gp->id_or_neg_offset];
           gp->id_or_neg_offset = s->parts - p;
           p->gpart = gp;
         } else if (gp->type == swift_type_star) {