Index: /issm/trunk/src/c/Container/Nodes.cpp
===================================================================
--- /issm/trunk/src/c/Container/Nodes.cpp	(revision 4386)
+++ /issm/trunk/src/c/Container/Nodes.cpp	(revision 4387)
@@ -262,5 +262,5 @@
 
 	/*sid starts at 0*/
-	max_sid++;
+	if (max_sid) max_sid++;
 
 	/*return*/
@@ -268,5 +268,5 @@
 }
 /*}}}*/
-/*FUNCTION Nodes::NumberOfNodes{{{1*/
+/*FUNCTION Nodes::NumberOfNodes(analysis){{{1*/
 int Nodes::NumberOfNodes(int analysis_type){
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 4386)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 4387)
@@ -22,6 +22,9 @@
 	Nodes*    nodes = NULL;
 
+	/*Recover pointer: */
+	nodes=*pnodes;
+
 	/*First create nodes*/
-	nodes = new Nodes(NodesEnum);
+	if(!nodes) nodes = new Nodes(NodesEnum);
 	
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4386)
+++ /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4387)
@@ -27,5 +27,5 @@
 
 
-	if(nodes)iomodel->nodecounter=nodes->NumberOfNodes();
+	if(nodes) iomodel->nodecounter=nodes->NumberOfNodes();
 	else iomodel->nodecounter=0;
 
Index: /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp	(revision 4386)
+++ /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp	(revision 4387)
@@ -26,4 +26,6 @@
 	found=parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 	if(!found)ISSMERROR("could not find numberofdofspernode in parameters");
+	/*WARNING: THERE IS A BUG HERE TO BE FIXED (see wiki)*/
+	DistributeNumDofs(&numberofdofspernode,analysis_type);
 
 	/*Ensure that only for each cpu, the partition border nodes only will be taken into account once 
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 4386)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 4387)
@@ -883,5 +883,5 @@
 	/*Ok, we are not a clone, just plug our dofs into truedofs: */
 	for(j=0;j<this->indexing.numberofdofs;j++){
-		*(truedofs+this->indexing.numberofdofs*(id-1)+j)=indexing.doflist[j];
+		*(truedofs+this->indexing.numberofdofs*sid+j)=indexing.doflist[j];
 	}
 
