Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16015)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16016)
@@ -7276,4 +7276,5 @@
 
 		H_input->GetInputValue(&thickness,gauss);
+		if(thickness<50.) thickness=50.;
 		TriaRef::GetInputDerivativeValue(&dhnx[0],HNx,&xyz_list[0][0],gauss);
 		TriaRef::GetInputDerivativeValue(&dhny[0],HNy,&xyz_list[0][0],gauss);
@@ -7281,5 +7282,5 @@
 		TriaRef::GetInputValue(&hny,HNy,gauss);
 
-		gamma=h/(2.*thickness);
+		gamma=h/(2.*thickness+1.e-10);
 
 		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
@@ -7290,8 +7291,6 @@
 			for(int j=0;j<numnodes;j++){
 				Ke->values[i*numnodes+j] += gauss->weight*Jdettria*(
-							basis[i]*basis[j]*(dhnx[0]+dhny[1])
-							+ basis[i]*(dbasis[0*numnodes+j]*hnx + dbasis[1*numnodes+j]*hny)
-							+ gamma*(basis[j]*(dhnx[0]+dhny[1])  + dbasis[0*numnodes+j]*hnx + dbasis[1*numnodes+j]*hny)*
-							(basis[i]*(dhnx[0]+dhny[1]) + dbasis[0*numnodes+i]*hnx + dbasis[1*numnodes+i]*hny)
+							(basis[i]+gamma*(basis[i]*(dhnx[0]+dhny[1]) + dbasis[0*numnodes+i]*hnx + dbasis[1*numnodes+i]*hny))*
+							(basis[j]*(dhnx[0]+dhny[1])  + dbasis[0*numnodes+j]*hnx + dbasis[1*numnodes+j]*hny)
 							);
 			}
@@ -7514,4 +7513,5 @@
 		dhdt_input->GetInputValue(&dhdt_g,gauss);
 		H_input->GetInputValue(&thickness,gauss);
+		if(thickness<50.) thickness=50.;
 
 		GetJacobianDeterminant(&Jdettria, &xyz_list[0][0],gauss);
@@ -7524,9 +7524,9 @@
 		TriaRef::GetInputValue(&hny,HNy,gauss);
 
-		gamma=h/(2.*thickness);
+		gamma=h/(2.*thickness+1.e-10);
 
 		for(int i=0;i<numnodes;i++){
 			pe->values[i]+=Jdettria*gauss->weight*(ms_g-mb_g-dhdt_g)*(
-						basis[i] + gamma*(basis[i]*(dhnx[0]+dhny[1])+hnx*dbasis[0] + hny*dbasis[1])
+						basis[i] + gamma*(basis[i]*(dhnx[0]+dhny[1])+hnx*dbasis[0*numnodes+i] + hny*dbasis[1*numnodes+i])
 						);
 		}
