diff --git a/src/utils/PTScotchPartitioner.cpp b/src/utils/PTScotchPartitioner.cpp
index e86acfa4494c437dfbe8886a83d6ecbf01f514f2..112ddfecdf161d8b924b6f9b962d16e75c22c507 100644
--- a/src/utils/PTScotchPartitioner.cpp
+++ b/src/utils/PTScotchPartitioner.cpp
@@ -90,7 +90,9 @@ PTScotchPartitioner::partition(const CRSGraph& graph)
     SCOTCH_stratExit(&scotch_strategy);
   }
 
-  MPI_Comm_free(&partitioning_comm);
+  if (partitioning_comm != MPI_COMM_NULL){
+    MPI_Comm_free(&partitioning_comm);
+  }
   MPI_Group_free(&mesh_group);
   MPI_Group_free(&world_group);
 
diff --git a/src/utils/ParMETISPartitioner.cpp b/src/utils/ParMETISPartitioner.cpp
index 47864de1fd3337bc6e193ad3453ad8d6c75eb797..f1b17c3d070a71e0290c8c6434b0e13d2e442bad 100644
--- a/src/utils/ParMETISPartitioner.cpp
+++ b/src/utils/ParMETISPartitioner.cpp
@@ -72,7 +72,9 @@ ParMETISPartitioner::partition(const CRSGraph& graph)
     // LCOV_EXCL_STOP
   }
 
-  MPI_Comm_free(&partitioning_comm);
+  if (partitioning_comm != MPI_COMM_NULL){
+    MPI_Comm_free(&partitioning_comm);
+  }
   MPI_Group_free(&mesh_group);
   MPI_Group_free(&world_group);