diff --git a/src/collectgroup.c b/src/collectgroup.c
index 70ebab4c25a25c35ea71de385be3b2ed1d2deeff..0b7b419b565612149fd2b295116b37aa65aa01e9 100644
--- a/src/collectgroup.c
+++ b/src/collectgroup.c
@@ -230,7 +230,7 @@ static void mpicollectgroup1_reduce(void *in, void *inout, int *len,
                                     MPI_Datatype *datatype) {
 
   for (int i = 0; i < *len; ++i)
-    doreduce1(&((struct mpicollectgroup1 *)inout)[0],
+    doreduce1(&((struct mpicollectgroup1 *)inout)[i],
               &((const struct mpicollectgroup1 *)in)[i]);
 }