diff --git a/src/engine.c b/src/engine.c
index 08b12192f4b633b454f5e7fd8dee74f96e563e55..605bd6b6e4c075da538720b43ca17908cc7205cf 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -1989,8 +1989,8 @@ void engine_rebuild(struct engine *e, int repartitioned,
   space_rebuild(e->s, repartitioned, e->verbose);
 
   /* Update the global counters of particles */
-  long long num_particles[3] = {e->s->nr_parts, e->s->nr_gparts,
-                                e->s->nr_sparts};
+  long long num_particles[3] = {(long long)e->s->nr_parts, (long long)e->s->nr_gparts,
+                                (long long)e->s->nr_sparts};
 #ifdef WITH_MPI
   MPI_Allreduce(MPI_IN_PLACE, num_particles, 3, MPI_LONG_LONG, MPI_SUM,
                 MPI_COMM_WORLD);
diff --git a/src/runner_doiact_grav.h b/src/runner_doiact_grav.h
index 1e15df821e7068458203b55a147694deee8510a9..136e03d3bd33644bbc40c5b1fb3f47e0808c558e 100644
--- a/src/runner_doiact_grav.h
+++ b/src/runner_doiact_grav.h
@@ -697,7 +697,7 @@ static INLINE void runner_dopair_grav_pp(struct runner *r, struct cell *ci,
   /* Recover some useful constants */
   const struct engine *e = r->e;
   const int periodic = e->mesh->periodic;
-  const float dim[3] = {e->mesh->dim[0], e->mesh->dim[1], e->mesh->dim[2]};
+  const float dim[3] = {(float)e->mesh->dim[0], (float)e->mesh->dim[1], (float)e->mesh->dim[2]};
   const float r_s_inv = e->mesh->r_s_inv;
   const double min_trunc = e->mesh->r_cut_min;
 
@@ -1406,7 +1406,7 @@ static INLINE void runner_dopair_recursive_grav_pm(struct runner *r,
   /* Some constants */
   const struct engine *e = r->e;
   const int periodic = e->mesh->periodic;
-  const float dim[3] = {e->mesh->dim[0], e->mesh->dim[1], e->mesh->dim[2]};
+  const float dim[3] = {(float)e->mesh->dim[0], (float)e->mesh->dim[1], (float)e->mesh->dim[2]};
   const float r_s_inv = e->mesh->r_s_inv;
 
   /* Anything to do here? */