diff --git a/src/dump.c b/src/dump.c
index 5c0fb80604eaf899f2ef8771b5251808caf75406..44991aa7eae4e7beb00b829bd9a0693e3049258e 100644
--- a/src/dump.c
+++ b/src/dump.c
@@ -85,8 +85,14 @@ void dump_ensure(struct dump *d, size_t size) {
   /* Re-map starting at the end of the file. */
   if ((d->data = mmap(NULL, d->size, PROT_WRITE, MAP_SHARED, d->fd,
                       d->file_offset)) == MAP_FAILED) {
-    error("Failed to allocate map of size %zi bytes (%s).", d->size,
-          strerror(errno));
+    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,
+	    strerror(errno));
+    else
+      error("Failed to allocate map of size %zi bytes (%s).", d->size,
+	    strerror(errno));
   }
 }
 
diff --git a/src/engine.c b/src/engine.c
index 6f6c4a8185c2dff787c26b450c99826284824c9d..eebc1bc1c53d10c9a6115cace3c1484cac5c0542 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -6718,6 +6718,7 @@ void engine_init(struct engine *e, struct space *s, struct swift_params *params,
   struct dump *dump_file = e->logger_dump;
   dump_init(dump_file, logger_name_file, e->logger_size);
   logger_write_file_header(dump_file);
+  dump_ensure(dump_file, e->logger_size);
   e->logger_time_offset = 0;
 #endif