Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 25446)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 25447)
@@ -3406,10 +3406,11 @@
 	for(int i=0;i<numnodes;i++){
 
-		if(!flags[this->nodes[i]->Lid()]){
+		int nodelid = this->nodes[i]->Lid();
+		if(!flags[nodelid]){
 
 			/*flag current node so that no other element processes it*/
-			flags[this->nodes[i]->Lid()]=true;
-
-			flagsindices[flagsindices_counter[0]]=this->nodes[i]->Lid();
+			flags[nodelid]=true;
+
+			flagsindices[flagsindices_counter[0]]=nodelid;
 			flagsindices_counter[0]++;
 
Index: /issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp	(revision 25446)
+++ /issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp	(revision 25447)
@@ -130,8 +130,9 @@
 	for(i=0;i<femmodel->elements->Size();i++){
 		element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
-		lidlist = xNew<int>(element->GetNumberOfNodes());
+		int elementnumnodes = element->GetNumberOfNodes();
+		lidlist = xNew<int>(elementnumnodes);
 		element->GetNodesLidList(lidlist);
 
-		for(j=0;j<element->GetNumberOfNodes();j++){
+		for(j=0;j<elementnumnodes;j++){
 			index = lidlist[j];
 			_assert_(index>=0 && index<numnodes);
@@ -141,5 +142,5 @@
 			head_e[index]=k++;
 		}
-		for(j=0;j<numnodesperelement-element->GetNumberOfNodes();j++) k++;
+		k = k + (numnodesperelement-elementnumnodes);
 
 		xDelete<int>(lidlist);
@@ -153,8 +154,9 @@
 	for(i=0;i<femmodel->loads->Size();i++){
 		load = xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i));
-		lidlist = xNew<int>(load->GetNumberOfNodes());
+		int loadnumnodes = load->GetNumberOfNodes();
+		lidlist = xNew<int>(loadnumnodes);
 		load->GetNodesLidList(lidlist);
 
-		for(j=0;j<load->GetNumberOfNodes();j++){
+		for(j=0;j<loadnumnodes;j++){
 			index = lidlist[j];
 			_assert_(index>=0 && index<numnodes);
@@ -164,5 +166,5 @@
 			head_l[index]=k++;
 		}
-		for(j=0;j<numnodesperload-load->GetNumberOfNodes();j++) k++;
+		k = k + (numnodesperload-loadnumnodes);
 
 		xDelete<int>(lidlist);
@@ -186,4 +188,6 @@
 	for(i=0;i<femmodel->nodes->Size();i++){
 		Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i));
+		int   lid = node->Lid();
+		int   pid = node->Pid();
 
 		/*Reinitialize flags to false*/
@@ -201,26 +205,26 @@
 		flagsindices_counter = 0;
 
-		for(j=head_e[node->Lid()];j!=-1;j=next_e[j]){
+		for(j=head_e[lid];j!=-1;j=next_e[j]){
 			offset=count2offset_e[j];
 			element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(offset));
 			element->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,&flagsindices_counter,set1enum,set2enum);
 			if(node->IsClone()){
-				connectivity_clone->SetValue(node->Pid(),d_nz+o_nz,ADD_VAL);
-			}
-			else{
-				d_connectivity[node->Lid()]+=d_nz;
-				o_connectivity[node->Lid()]+=o_nz;
-			}
-		}
-		for(j=head_l[node->Lid()];j!=-1;j=next_l[j]){
+				connectivity_clone->SetValue(pid,d_nz+o_nz,ADD_VAL);
+			}
+			else{
+				d_connectivity[lid]+=d_nz;
+				o_connectivity[lid]+=o_nz;
+			}
+		}
+		for(j=head_l[lid];j!=-1;j=next_l[j]){
 			offset=count2offset_l[j];
 			load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(offset));
 			load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,&flagsindices_counter,set1enum,set2enum);
 			if(node->IsClone()){
-				connectivity_clone->SetValue(node->Pid(),d_nz+o_nz,ADD_VAL);
-			}
-			else{
-				d_connectivity[node->Lid()]+=d_nz;
-				o_connectivity[node->Lid()]+=o_nz;
+				connectivity_clone->SetValue(pid,d_nz+o_nz,ADD_VAL);
+			}
+			else{
+				d_connectivity[lid]+=d_nz;
+				o_connectivity[lid]+=o_nz;
 			}
 		}
@@ -247,9 +251,10 @@
 		for(i=0;i<femmodel->nodes->Size();i++){
 			Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i));
+			int   lid = node->Lid();
 			if(!node->IsClone()){
 				for(j=0;j<node->fsize;j++){
 					_assert_(count<m);
-					d_nnz[count]=numberofdofspernode*(d_connectivity[node->Lid()] + reCast<int>(serial_connectivity_clone[node->Lid()]));
-					o_nnz[count]=numberofdofspernode*(o_connectivity[node->Lid()] + reCast<int>(serial_connectivity_clone[node->Lid()]));
+					d_nnz[count]=numberofdofspernode*(d_connectivity[lid] + reCast<int>(serial_connectivity_clone[lid]));
+					o_nnz[count]=numberofdofspernode*(o_connectivity[lid] + reCast<int>(serial_connectivity_clone[lid]));
 					if(d_nnz[count]>n)   d_nnz[count]=n;
 					if(o_nnz[count]>N-n) o_nnz[count]=N-n;
