Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23596)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23597)
@@ -510,4 +510,5 @@
 
 	for(i=0;i<nummodels;i++){
+		printf(" ==== %s  ====\n",EnumToStringx(this->analysis_type_list[i]));
 		this->constraints_list[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
 		this->loads_list[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
Index: /issm/trunk-jpl/src/c/classes/Nodes.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Nodes.cpp	(revision 23596)
+++ /issm/trunk-jpl/src/c/classes/Nodes.cpp	(revision 23597)
@@ -101,5 +101,5 @@
 }
 /*}}}*/
-void Nodes::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+void  Nodes::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
 
 	int num_procs=IssmComm::GetSize();
@@ -108,17 +108,25 @@
 	MARSHALLING(test);
 	if(test!=num_procs) _error_("number of cores is not the same as before");
-	/*
-	MARSHALLING_DYNAMIC(this->common_recv,int,num_procs);
-	MARSHALLING_DYNAMIC(this->common_send,int,num_procs);
+
+	DataSet::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+
 	if(marshall_direction == MARSHALLING_BACKWARD){
 		this->common_recv_ids = xNew<int*>(num_procs);
 		this->common_send_ids = xNew<int*>(num_procs);
-	}
+		for(int i=0;i<num_procs;i++){
+			this->common_recv_ids[i] = NULL;
+			this->common_send_ids[i] = NULL;
+		}
+	}
+
+	/*Stop here if no nodes*/
+	if(this->Size()==0) return;
+
+	MARSHALLING_DYNAMIC(this->common_recv,int,num_procs);
+	MARSHALLING_DYNAMIC(this->common_send,int,num_procs);
 	for(int i=0;i<num_procs;i++){
-		MARSHALLING_DYNAMIC(this->common_recv_ids[i],int,this->common_recv[i]);
-		MARSHALLING_DYNAMIC(this->common_send_ids[i],int,this->common_send[i]);
-	}
-	*/
-	DataSet::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+		if(this->common_recv[i]) MARSHALLING_DYNAMIC(this->common_recv_ids[i],int,this->common_recv[i]);
+		if(this->common_send[i]) MARSHALLING_DYNAMIC(this->common_send_ids[i],int,this->common_send[i]);
+	}
 }
 /*}}}*/
@@ -228,5 +236,5 @@
 
 	/*Gather from all cpus: */
-	ISSM_MPI_Allreduce ( (void*)&numdofs,(void*)&allnumdofs,1,ISSM_MPI_INT,ISSM_MPI_SUM,IssmComm::GetComm());
+	ISSM_MPI_Allreduce ((void*)&numdofs,(void*)&allnumdofs,1,ISSM_MPI_INT,ISSM_MPI_SUM,IssmComm::GetComm());
 	return allnumdofs;
 }
@@ -265,10 +273,10 @@
 
 	/*Gather from all cpus: */
-	ISSM_MPI_Allreduce ( (void*)&numnodes,(void*)&allnumnodes,1,ISSM_MPI_INT,ISSM_MPI_SUM,IssmComm::GetComm());
+	ISSM_MPI_Allreduce((void*)&numnodes,(void*)&allnumnodes,1,ISSM_MPI_INT,ISSM_MPI_SUM,IssmComm::GetComm());
 
 	return allnumnodes;
 }
 /*}}}*/
-bool Nodes::RequiresDofReindexing(void){/*{{{*/
+bool  Nodes::RequiresDofReindexing(void){/*{{{*/
 
 	int flag = 0;
