diff --git a/src/arch/util/machine-common-core.c b/src/arch/util/machine-common-core.c
index 58af1fa..9f5e0a8 100644
--- a/src/arch/util/machine-common-core.c
+++ b/src/arch/util/machine-common-core.c
@@ -222,6 +222,13 @@ static int Cmi_nodestartGlobal = -1;
 CpvDeclare(unsigned , networkProgressCount);
 int networkProgressPeriod;
 
+#if CMK_CONVERSE_MPI
+MPI_Comm charmInterPartitionComm;
+MPI_Comm *charmInterPartitionCommPtr = NULL;
+MPI_Comm charmIntraPartitionComm;
+MPI_Comm *charmIntraPartitionCommPtr = NULL;
+#endif
+
 
 /* ===== Beginning of Common Function Declarations ===== */
 void CmiAbort(const char *message);
@@ -1108,6 +1115,20 @@ if (  MSG_STATISTIC)
       free(stdoutpath);
     }
 
+#if CMK_CONVERSE_MPI
+    if ( MPI_SUCCESS == MPI_Comm_split(charmComm, _Cmi_mynode, CmiMyPartition(), &charmInterPartitionComm) ) {
+      charmInterPartitionCommPtr = &charmInterPartitionComm;
+      if ( 0 ) {
+        int size, rank;
+        MPI_Comm_size(charmInterPartitionComm, &size);
+        MPI_Comm_rank(charmInterPartitionComm, &rank);
+        CmiPrintf("charmInterPartitionCommPtr %ld _Cmi_mynode %d CmiMyPartition %d size %d rank %d\n", (long) charmInterPartitionCommPtr, _Cmi_mynode, CmiMyPartition(), size, rank);
+      }
+    }
+    if ( MPI_SUCCESS == MPI_Comm_split(charmComm, CmiMyPartition(), _Cmi_mynode, &charmIntraPartitionComm) ) {
+      charmIntraPartitionCommPtr = &charmIntraPartitionComm;
+    }
+#endif
 
 #if CMK_USE_PXSHM
     CmiInitPxshm(argv);
