diff --git a/dune/common/parallel/communicator.hh b/dune/common/parallel/communicator.hh
index d5225807c2ccaacf7b2b43f709fe7a812d26a7f7..1baf9070c66e2f2ca6c49033cc3b5a6ccac319a9 100644
--- a/dune/common/parallel/communicator.hh
+++ b/dune/common/parallel/communicator.hh
@@ -1012,9 +1012,8 @@ namespace Dune
 
       // Create data type
       MPI_Datatype* type = &( send ? messageTypes[process->first].first : messageTypes[process->first].second);
-      MPI_Type_hindexed(info.elements, info.length, info.displ,
-                        MPITraits<typename CommPolicy<V>::IndexedType>::getType(),
-                        type);
+      MPI_Type_create_hindexed(info.elements, info.length, info.displ,
+                               MPITraits<typename CommPolicy<V>::IndexedType>::getType(), type);
       MPI_Type_commit(type);
       // Deallocate memory
       info.free();