diff --git a/include/internal/generic/fmpi_futhark_generic.h b/include/internal/generic/fmpi_futhark_generic.h
index a00cea6eb6ee477941bf0c8636860a8d19d13f75..c121d9212d26db4043ef94580783259bcb24dcdf 100644
--- a/include/internal/generic/fmpi_futhark_generic.h
+++ b/include/internal/generic/fmpi_futhark_generic.h
@@ -58,10 +58,10 @@ struct fmpi_futhark_ctx;
     ((void)(y), (void)(z), futhark_new_##T##_1d(ctx, array, (int64_t)(x)))
 
 #define FMPI_FUTHARK_NEW_2(T, ctx, array, x, y, z) \
-    ((void)(z), futhark_new_##T##_2d(ctx, array, (int64_t)(x), (int64_t)(y)))
+    ((void)(z), futhark_new_##T##_2d(ctx, array, (int64_t)(y), (int64_t)(x)))
 
 #define FMPI_FUTHARK_NEW_3(T, ctx, array, x, y, z) \
-    futhark_new_##T##_3d(ctx, array, (int64_t)(x), (int64_t)(y), (int64_t)(z))
+    futhark_new_##T##_3d(ctx, array, (int64_t)(z), (int64_t)(y), (int64_t)(x))
 
 #define FMPI_FUTHARK_DECLARATION(D, T) \
 void * fmpi_futhark_new_##D##d_##T( \