diff --git a/src/dump.c b/src/dump.c
index 44991aa7eae4e7beb00b829bd9a0693e3049258e..51fceb641fa4be47bcde514884a35a5d01a80807 100644
--- a/src/dump.c
+++ b/src/dump.c
@@ -83,9 +83,10 @@ void dump_ensure(struct dump *d, size_t size) {
   }
 
   /* Re-map starting at the end of the file. */
+  d->file_offset = d->file_offset / getpagesize() + 1;
+  d->file_offset *= getpagesize();
   if ((d->data = mmap(NULL, d->size, PROT_WRITE, MAP_SHARED, d->fd,
                       d->file_offset)) == MAP_FAILED) {
-    message("Offset %lu, size %lu", d->file_offset, d->size);
     size_t mega = 1e6;
     if (d->size > mega)
       error("Failed to allocate map of size %zi Mbytes (%s).", d->size / mega,
diff --git a/src/engine.c b/src/engine.c
index eebc1bc1c53d10c9a6115cace3c1484cac5c0542..e1249c9cc4d28ddcbdfd32ad3515cb26014548ab 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -5469,8 +5469,8 @@ void engine_step(struct engine *e) {
 #ifdef WITH_LOGGER
   logger_log_timestamp(e->ti_old, &e->logger_time_offset,
 		       e->logger_dump);
-  dump_ensure(e->logger_dump, e->logger_size);
   logger_ensure_size(e->total_nr_parts, e->logger_size);
+  dump_ensure(e->logger_dump, e->logger_size);
 #endif
 
   /* Are we drifting everything (a la Gadget/GIZMO) ? */