diff --git a/src/utils/ReproducibleSumMPI.hpp b/src/utils/ReproducibleSumMPI.hpp
index fc49c051b2bb75985b5dc17aa95e46791717d909..fcb9bdc1e39db434581937287b24d5b0c8bbaae5 100644
--- a/src/utils/ReproducibleSumMPI.hpp
+++ b/src/utils/ReproducibleSumMPI.hpp
@@ -43,6 +43,7 @@ allReduceReproducibleSum(const ReproducibleScalarSum<ArrayT, BoolArrayT>& s)
   BinType sum_bin = zero;
   MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm());
 
+  MPI_Type_free(&mpi_bin_type);
   MPI_Op_free(&mpi_bin_sum_op);
 
   return sum_bin;
@@ -71,6 +72,7 @@ allReduceReproducibleSum(const ReproducibleTinyVectorSum<ArrayT, BoolArrayT>& s)
   MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm());
 
   MPI_Op_free(&mpi_bin_sum_op);
+  MPI_Type_free(&mpi_bin_type);
 
   return sum_bin;
 }
@@ -98,6 +100,7 @@ allReduceReproducibleSum(const ReproducibleTinyMatrixSum<ArrayT, BoolArrayT>& s)
   MPI_Allreduce(&local_bin, &sum_bin, 1, mpi_bin_type, mpi_bin_sum_op, parallel::Messenger::getInstance().comm());
 
   MPI_Op_free(&mpi_bin_sum_op);
+  MPI_Type_free(&mpi_bin_type);
 
   return sum_bin;
 }