Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 8538)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 8539)
@@ -885,4 +885,5 @@
 		if(slope_magnitude>MAXSLOPE) alpha2=pow((double)10,MOUNTAINKEXPONENT);
 		else friction->GetAlpha2(&alpha2, gauss,VxEnum,VyEnum,VzEnum);
+		_assert_(alpha2>=0);
 
 		GetL(&L[0][0], &xyz_list[0][0], gauss,NDOF2);
@@ -1622,6 +1623,6 @@
 		for(i=0;i<numdof;i++) pe->values[i]+=(thicknessobs-thickness)*weight*Jdet*gauss->weight*l1l2l3[i];
 		/*Regularization of the constraint: 2000000 79 N*/
-		//for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[0]*dbasis[0][i]*Jdet*gauss->weight;
-		//for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[1]*dbasis[1][i]*weight*Jdet*gauss->weight;
+		for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[0]*dbasis[0][i]*Jdet*gauss->weight;
+		for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[1]*dbasis[1][i]*Jdet*gauss->weight;
 	}
 
@@ -5257,4 +5258,6 @@
 	double     xyz_list[NUMVERTICES][3];
 	GaussTria *gauss = NULL;
+	double     dbasis[NDOF2][NUMVERTICES]; 
+	double     dH[2];
 
 	/*If on water, return 0: */
@@ -5277,7 +5280,9 @@
 		/* Get Jacobian determinant: */
 		GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss);
+		GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss);
 
 		/*Get parameters at gauss point*/
 		thickness_input->GetParameterValue(&thickness,gauss);
+		thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss);
 		thicknessobs_input->GetParameterValue(&thicknessobs,gauss);
 		weights_input->GetParameterValue(&weight,gauss);
@@ -5285,4 +5290,5 @@
 		/*compute ThicknessAbsMisfit*/
 		Jelem+=0.5*pow(thickness-thicknessobs,2.0)*weight*Jdet*gauss->weight;
+		Jelem+=0.5*100000*(pow(dH[0],2.)+pow(dH[1],2.))*Jdet*gauss->weight;
 	}
 
Index: /issm/trunk/src/c/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 8538)
+++ /issm/trunk/src/c/objects/Materials/Matpar.cpp	(revision 8539)
@@ -410,5 +410,5 @@
 /*}}}1*/
 /*FUNCTION Matqar::GetHydroQ {{{1*/
-double Matqar::GetHydroQ(){
+double Matpar::GetHydroQ(){
 	return hydro_q;
 }
Index: /issm/trunk/src/c/shared/Matlab/PrintfFunction.cpp
===================================================================
--- /issm/trunk/src/c/shared/Matlab/PrintfFunction.cpp	(revision 8538)
+++ /issm/trunk/src/c/shared/Matlab/PrintfFunction.cpp	(revision 8539)
@@ -52,5 +52,5 @@
 	}
 
-	/*Ok, if we are running in paralle, get node 0 to print*/
+	/*Ok, if we are running in parallel, get node 0 to print*/
 #if defined(_PARALLEL_)
 	if(my_rank==0)printf(buffer);
Index: /issm/trunk/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk/src/c/solutions/issm.cpp	(revision 8538)
+++ /issm/trunk/src/c/solutions/issm.cpp	(revision 8539)
@@ -82,5 +82,6 @@
 	if(control_analysis){
 		#ifdef _HAVE_TAO_
-		solutioncore=&controltao_core;
+		//solutioncore=&controltao_core;
+		solutioncore=&control_core;
 		#else
 		solutioncore=&control_core;
