diff --git a/src/part.c b/src/part.c
index 9394ab314b6c67cea832b2b5b96a8df76863ec8c..7d967caad18caf0c45d2a422fb4766d34f559d00 100644
--- a/src/part.c
+++ b/src/part.c
@@ -30,6 +30,7 @@
 
 /* Local headers */
 #include "error.h"
+#include "hydro.h"
 #include "part.h"
 
 /**
@@ -210,6 +211,13 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
             part->x[1], part->x[2], gparts[k].x[0] - part->x[0],
             gparts[k].x[1] - part->x[1], gparts[k].x[2] - part->x[2]);
 
+      /* Check that the particles have the same mass */
+      if (gparts[k].mass != hydro_get_mass(part))
+        error(
+            "Linked particles do not have the same mass!\n"
+            "gp->m=%e p->m=%e",
+            gparts[k].mass, hydro_get_mass(part));
+
       /* Check that the particles are at the same time */
       if (gparts[k].time_bin != part->time_bin)
         error("Linked particles are not at the same time !");
@@ -237,6 +245,13 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
             spart->x[1], spart->x[2], gparts[k].x[0] - spart->x[0],
             gparts[k].x[1] - spart->x[1], gparts[k].x[2] - spart->x[2]);
 
+      /* Check that the particles have the same mass */
+      if (gparts[k].mass != spart->mass)
+        error(
+            "Linked particles do not have the same mass!\n"
+            "gp->m=%e sp->m=%e",
+            gparts[k].mass, spart->mass);
+
       /* Check that the particles are at the same time */
       if (gparts[k].time_bin != spart->time_bin)
         error("Linked particles are not at the same time !");
@@ -264,6 +279,13 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
             bpart->x[1], bpart->x[2], gparts[k].x[0] - bpart->x[0],
             gparts[k].x[1] - bpart->x[1], gparts[k].x[2] - bpart->x[2]);
 
+      /* Check that the particles have the same mass */
+      if (gparts[k].mass != bpart->mass)
+        error(
+            "Linked particles do not have the same mass!\n"
+            "gp->m=%e sp->m=%e",
+            gparts[k].mass, bpart->mass);
+
       /* Check that the particles are at the same time */
       if (gparts[k].time_bin != bpart->time_bin)
         error("Linked particles are not at the same time !");
@@ -287,6 +309,10 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
           parts[k].x[2] != parts[k].gpart->x[2])
         error("Linked particles are not at the same position !");
 
+      /* Check that the particles have the same mass */
+      if (hydro_get_mass(&parts[k]) != parts[k].gpart->mass)
+        error("Linked particles do not have the same mass!\n");
+
       /* Check that the particles are at the same time */
       if (parts[k].time_bin != parts[k].gpart->time_bin)
         error("Linked particles are not at the same time !");
@@ -309,6 +335,10 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
             sparts[k].x[2] != sparts[k].gpart->x[2])
           error("Linked particles are not at the same position !");
 
+        /* Check that the particles have the same mass */
+        if (sparts[k].mass != sparts[k].gpart->mass)
+          error("Linked particles do not have the same mass!\n");
+
         /* Check that the particles are at the same time */
         if (sparts[k].time_bin != sparts[k].gpart->time_bin)
           error("Linked particles are not at the same time !");
@@ -332,6 +362,10 @@ void part_verify_links(struct part *parts, struct gpart *gparts,
             bparts[k].x[2] != bparts[k].gpart->x[2])
           error("Linked particles are not at the same position !");
 
+        /* Check that the particles have the same mass */
+        if (bparts[k].mass != bparts[k].gpart->mass)
+          error("Linked particles do not have the same mass!\n");
+
         /* Check that the particles are at the same time */
         if (bparts[k].time_bin != bparts[k].gpart->time_bin)
           error("Linked particles are not at the same time !");
diff --git a/src/space.c b/src/space.c
index 488672eb0b704d70506372c7152f0b554d09de4b..8b76b2d7ee7ffb3469378e20b35931ecf4e09ed8 100644
--- a/src/space.c
+++ b/src/space.c
@@ -3934,7 +3934,7 @@ void space_synchronize_particle_positions_mapper(void *map_data, int nr_gparts,
   for (int k = 0; k < nr_gparts; k++) {
 
     /* Get the particle */
-    const struct gpart *restrict gp = &gparts[k];
+    struct gpart *restrict gp = &gparts[k];
 
     if (gp->type == swift_type_dark_matter)
       continue;
@@ -3953,6 +3953,8 @@ void space_synchronize_particle_positions_mapper(void *map_data, int nr_gparts,
       xp->v_full[0] = gp->v_full[0];
       xp->v_full[1] = gp->v_full[1];
       xp->v_full[2] = gp->v_full[2];
+
+      gp->mass = p->mass;
     }
 
     else if (gp->type == swift_type_stars) {
@@ -3964,6 +3966,8 @@ void space_synchronize_particle_positions_mapper(void *map_data, int nr_gparts,
       sp->x[0] = gp->x[0];
       sp->x[1] = gp->x[1];
       sp->x[2] = gp->x[2];
+
+      gp->mass = sp->mass;
     }
 
     else if (gp->type == swift_type_black_hole) {
@@ -3975,6 +3979,8 @@ void space_synchronize_particle_positions_mapper(void *map_data, int nr_gparts,
       bp->x[0] = gp->x[0];
       bp->x[1] = gp->x[1];
       bp->x[2] = gp->x[2];
+
+      gp->mass = bp->mass;
     }
   }
 }