diff --git a/src/logger.c b/src/logger.c
index 44eae4915a04bfc7c22223810ed899ec3ba50417..4f0f51b94cd2885249f51f684bf5c2fc3915ad1c 100644
--- a/src/logger.c
+++ b/src/logger.c
@@ -177,17 +177,18 @@ int logger_size(unsigned int mask) {
 /**
  * @brief log all particles
  *
+ * This function update the last_offset in #part
+ *
  * @param p List of all the #part to log
  * @param Np Number of particle to log
  * @param dump The #dump in which to log the particle data
  */
-void logger_log_all(const struct part *p, const long long Np, struct dump *dump) {
+void logger_log_all(struct part *p, const long long Np, struct dump *dump) {
   const unsigned int mask = logger_mask_x | logger_mask_v | logger_mask_a |
     logger_mask_u | logger_mask_h | logger_mask_rho |
     logger_mask_consts;
   for(long long i=0; i < Np; i++) {
-    size_t offset = p[i].last_offset;
-    logger_log_part(&p[i], mask, &offset, dump);
+    logger_log_part(&p[i], mask, &p[i].last_offset, dump);
   }
 }
 
diff --git a/src/logger.h b/src/logger.h
index c3cc2c5bb6f19ab48a3903907b605b4b4a40db44..f81a833d505fd3970b0210ab955b94beb4e7034f 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -120,7 +120,7 @@ extern const unsigned int logger_data_size[];
 
 /* Function prototypes. */
 int logger_size(unsigned int mask);
-void logger_log_all(const struct part *p,
+void logger_log_all(struct part *p,
 		    const long long Np, struct dump *dump);
 void logger_log_part(const struct part *p, const unsigned int mask, size_t *offset,
                      struct dump *dump);