Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17192)
@@ -323,7 +323,11 @@
 	
 	IssmDouble* eplHeads    = xNew<IssmDouble>(numnodes);
-	IssmDouble* eplOldHeads    = xNew<IssmDouble>(numnodes);
+	/* IssmDouble* relaxed    = xNew<IssmDouble>(numnodes); */
+	/* IssmDouble* eplOldHeads    = xNew<IssmDouble>(numnodes); */
 	IssmDouble  Stepping;
 
+
+	/*Get previous water head*/
+	//basalelement->GetInputListOnNodes(&eplOldHeads[0],EplHeadEnum);
 
 	/*Use the dof list to index into the solution vector: */
@@ -332,10 +336,7 @@
 		if(xIsNan<IssmDouble>(eplHeads[i])) _error_("NaN found in solution vector");
 	}
-
-	/*Get previous water head*/
-	/* basalelement->GetInputListOnNodes(&eplOldHeads[0],EplHeadEnum); */
 	
 	/* for(i=0;i<numnodes;i++) { */
-	/* 	eplHeads[i] = eplOldHeads[i]+0.8*(eplHeads[i]-eplOldHeads[i]); */
+	/* 	relaxed[i] = eplOldHeads[i]+0.8*(eplHeads[i]-eplOldHeads[i]); */
 	/* } */
 	/*Add input to the element: */
@@ -344,5 +345,5 @@
 	/*Free ressources:*/
 	xDelete<IssmDouble>(eplHeads);
-	xDelete<IssmDouble>(eplOldHeads);
+	//	xDelete<IssmDouble>(eplOldHeads);
 	xDelete<int>(doflist);
 	if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 17192)
@@ -15,4 +15,5 @@
 	int         transfer_flag;
 	int         penalty_lock;
+	int         hydro_maxiter;
 	bool        isefficientlayer;
 	IssmDouble  sedimentlimit;
@@ -33,4 +34,5 @@
 	iomodel->FetchData(&rel_tol,HydrologydcRelTolEnum);
 	iomodel->FetchData(&penalty_lock,HydrologydcPenaltyLockEnum);
+	iomodel->FetchData(&hydro_maxiter,HydrologydcMaxIterEnum);
 
 	if(sedimentlimit_flag==1){
@@ -51,4 +53,5 @@
 	parameters->AddObject(new DoubleParam(HydrologydcRelTolEnum,rel_tol));
 	parameters->AddObject(new IntParam(HydrologydcPenaltyLockEnum,penalty_lock));
+	parameters->AddObject(new IntParam(HydrologydcMaxIterEnum,hydro_maxiter));
 
 }/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17192)
@@ -4751,5 +4751,5 @@
 	IssmDouble wh_trans,sed_thick;
 	IssmDouble epl_specificstoring,sedstoring;
-	IssmDouble activeEpl[numdof],epl_thickness[numdof];
+	IssmDouble activeEpl[numdof],epl_thickness[numdof],old_epl_thickness[numdof];
 	IssmDouble epl_head[numdof],sed_head[numdof];
 	IssmDouble preceding_transfer[numdof],sed_trans[numdof];
@@ -4781,5 +4781,5 @@
 			GetInputListOnVertices(&sed_trans[0],HydrologydcSedimentTransmitivityEnum);
 			GetInputListOnVertices(&epl_head[0],EplHeadEnum);
-			GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);
+			GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);			
 
 			this->parameters->FindParam(&leakage,HydrologydcLeakageFactorEnum);
@@ -4801,4 +4801,5 @@
 					if(epl_head[i]>sed_head[i]){
 						wh_trans=epl_specificstoring*epl_thickness[i]*sed_trans[i]*(epl_head[i]-sed_head[i])/(leakage*sed_thick);
+						
 						/*No transfer if the sediment head is allready at the maximum*/
 						if(sed_head[i]>=h_max){
@@ -4812,5 +4813,5 @@
 					
 					/*Relaxation stuff*/
-					//					wh_trans=preceding_transfer[i]+0.8*(wh_trans-preceding_transfer[i]);
+					wh_trans=preceding_transfer[i]+0.8*(wh_trans-preceding_transfer[i]);
 					
 					/*Assign output pointer*/
@@ -4977,5 +4978,5 @@
 					
 				/*Relaxation stuff*/
-				//				thickness[i] = preceding_thickness[i]+0.8*(thickness[i]-preceding_thickness[i]);
+				thickness[i] = preceding_thickness[i]+0.8*(thickness[i]-preceding_thickness[i]);
 			}
 		}
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17191)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17192)
@@ -102,4 +102,5 @@
   EplHeadSlopeXEnum,
 	EplHeadSlopeYEnum,
+	HydrologydcMaxIterEnum,
 	HydrologydcRelTolEnum,
 	HydrologydcSpcsedimentHeadEnum,
@@ -185,5 +186,5 @@
 	MaterialsThermalExchangeVelocityEnum,
 	MaterialsThermalconductivityEnum,
-  	MaterialsTemperateiceconductivityEnum,
+	MaterialsTemperateiceconductivityEnum,
 	MaterialsLithosphereShearModulusEnum,
 	MaterialsLithosphereDensityEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17192)
@@ -110,4 +110,5 @@
 		case EplHeadSlopeXEnum : return "EplHeadSlopeX";
 		case EplHeadSlopeYEnum : return "EplHeadSlopeY";
+		case HydrologydcMaxIterEnum : return "HydrologydcMaxIter";
 		case HydrologydcRelTolEnum : return "HydrologydcRelTol";
 		case HydrologydcSpcsedimentHeadEnum : return "HydrologydcSpcsedimentHead";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17192)
@@ -110,4 +110,5 @@
 	      else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
 	      else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
+	      else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
 	      else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
 	      else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum;
@@ -136,9 +137,9 @@
 	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
 	      else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
-	      else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"WaterTransfer")==0) return WaterTransferEnum;
+	      if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
+	      else if (strcmp(name,"WaterTransfer")==0) return WaterTransferEnum;
 	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
@@ -259,9 +260,9 @@
 	      else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
 	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
-	      else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
+	      if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
+	      else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
 	      else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
 	      else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
@@ -382,9 +383,9 @@
 	      else if (strcmp(name,"Results")==0) return ResultsEnum;
 	      else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
-	      else if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
+	      if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
+	      else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
 	      else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
 	      else if (strcmp(name,"Contour")==0) return ContourEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
 	      else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
-	      else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
+	      if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
+	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
 	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
 	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
-	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
 	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
 	      else if (strcmp(name,"XY")==0) return XYEnum;
Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 17191)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 17192)
@@ -49,9 +49,7 @@
 	femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
 	femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
+	femmodel->parameters->FindParam(&hydro_maxiter,HydrologydcMaxIterEnum);
 	femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum);
 	femmodel->parameters->FindParam(&time,TimeEnum);
-
-	/*FIXME, hardcoded, put on an enum*/
-	hydro_maxiter=100;
 
 	hydrocount=1;
