Index: /issm/trunk-jpl/src/c/classes/Node.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15593)
+++ /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15594)
@@ -97,14 +97,5 @@
 	#endif
 
-	/*Diagnostic SIA*/
-	if(analysis_type==DiagnosticSIAAnalysisEnum){
-		_assert_(iomodel->Data(FlowequationVertexEquationEnum));
-		/*Constrain all nodes that are not SIA*/
-		if(reCast<int>(in_approximation)!=SIAApproximationEnum){
-			this->Deactivate();
-		}
-	}
-
-	/*Prognostic/ Melting/ Slopecompute/ Balancethickness*/
+	/*2d solutions in 3d, we need to constrain all the nodes that are not on base*/
 	if(
 				analysis_type==PrognosticAnalysisEnum || 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 15593)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 15594)
@@ -11,6 +11,9 @@
 void	CreateNodesDiagnosticSIA(Nodes** pnodes, IoModel* iomodel){
 
+	/*Intermediaries*/
+	bool  isSIA;
+	Node* node = NULL;
+
 	/*Fetch parameters: */
-	bool isSIA;
 	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
 
@@ -24,9 +27,21 @@
 	iomodel->FetchData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
 				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+
 	for(int i=0;i<iomodel->numberofvertices;i++){
 		if(iomodel->my_vertices[i]){
-			nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,DiagnosticSIAAnalysisEnum,reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i])));
+
+			/*Create new node if is in this processor's partition*/
+			node = new Node(iomodel->nodecounter+i+1,i,i,iomodel,DiagnosticSIAAnalysisEnum,reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i]));
+
+			/*Deactivate node if not SIA*/
+			if(reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i])!=SIAApproximationEnum){
+				node->Deactivate();
+			}
+
+			/*Add to Nodes dataset*/
+			nodes->AddObject(node);
 		}
 	}
+
 	iomodel->DeleteData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
 				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
