diff --git a/src/fmpi_domain.c b/src/fmpi_domain.c
index e44e914c5e85ac06a5798af134260da2d844f7a6..657876959d710d5df255b4046d4e6149004a6d81 100644
--- a/src/fmpi_domain.c
+++ b/src/fmpi_domain.c
@@ -93,7 +93,7 @@ static struct fmpi_data fmpi_partition_block_1d(
     const size_t rem = data->cnt % (size_t)ctx->mpi->size;
     const size_t cnt = (rank < rem) ? (cnt_per_proc + 1) : cnt_per_proc;
     const size_t size = cnt * data->type.size;
-    const size_t offset = (rank * size) + rem;
+    const size_t offset = (rank * size) + (rank < rem ? 0 : rem);
     return (struct fmpi_data){
         .type = data->type,
         .cnt = cnt,