Index: ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18980)
+++ ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18981)
@@ -12,8 +12,8 @@
 
 	int         hydrology_model;
 	int         eplflip_lock;
+	int         eplthickcomp;
 	bool        isefficientlayer;
-
 	/*retrieve some parameters: */
 	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
 
@@ -29,6 +29,10 @@
 	/*If yes, initialize a flip flop counter*/
 	iomodel->FetchData(&eplflip_lock,HydrologydcEplflipLockEnum);
 	parameters->AddObject(new IntParam(HydrologydcEplflipLockEnum,eplflip_lock));
+
+	iomodel->FetchData(&eplthickcomp,HydrologydcEplThickCompEnum);
+	parameters->AddObject(new IntParam(HydrologydcEplThickCompEnum,eplthickcomp));
+
 	
 }/*}}}*/
 void HydrologyDCEfficientAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
@@ -516,16 +520,20 @@
 void HydrologyDCEfficientAnalysis::ComputeEPLThickness(FemModel* femmodel){/*{{{*/
 
 	bool        active_element;
+	int         iseplthickcomp;
 	int         domaintype;
 	IssmDouble  dt,A,B;
 	IssmDouble  EPLgrad2;
 	IssmDouble  EPL_N;
 
+	
 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
 
 	for(int j=0;j<femmodel->elements->Size();j++){
 		
 		Element* element=(Element*)femmodel->elements->GetObjectByOffset(j);
+		element->parameters->FindParam(&iseplthickcomp,HydrologydcEplThickCompEnum);
+		if(iseplthickcomp==0) return;
 		
 		switch(domaintype){
 		case Domain2DhorizontalEnum:
@@ -694,6 +702,7 @@
 
 		/*If mask was already one, keep one*/
 		else if(old_active[i]>0.){
+			
 			vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL);
 			/*If epl thickness gets under colapse thickness, close the layer*/
 			if(epl_thickness[i]<colapse_thick){
@@ -702,6 +711,7 @@
 				if(eplzigzag_counter[basalelement->nodes[i]->Lid()]<eplflip_lock |eplflip_lock==0){
 					vec_mask->SetValue(basalelement->nodes[i]->Sid(),0.,INS_VAL);
 					epl_thickness[i]=init_thick;
+					//If no more active nodes in the element probably colapse it two
 				}
 				else{
 					vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL);
Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18980)
+++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18981)
@@ -130,6 +130,7 @@
 	HydrologydcEplMaxThicknessEnum,
 	HydrologydcEplThicknessEnum,
 	HydrologydcEplThicknessOldEnum,
+	HydrologydcEplThickCompEnum,
 	HydrologydcEplConductivityEnum,
 	HydrologydcIsefficientlayerEnum,
 	HydrologydcSedimentlimitFlagEnum,
Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18980)
+++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18981)
@@ -138,6 +138,7 @@
 		case HydrologydcEplMaxThicknessEnum : return "HydrologydcEplMaxThickness";
 		case HydrologydcEplThicknessEnum : return "HydrologydcEplThickness";
 		case HydrologydcEplThicknessOldEnum : return "HydrologydcEplThicknessOld";
+		case HydrologydcEplThickCompEnum : return "HydrologydcEplThickComp";
 		case HydrologydcEplConductivityEnum : return "HydrologydcEplConductivity";
 		case HydrologydcIsefficientlayerEnum : return "HydrologydcIsefficientlayer";
 		case HydrologydcSedimentlimitFlagEnum : return "HydrologydcSedimentlimitFlag";
Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18980)
+++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18981)
@@ -141,6 +141,7 @@
    if(stage==2){
 	      if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
 	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+	      else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum;
 	      else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum;
 	      else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
 	      else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum;
@@ -258,11 +259,11 @@
 	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
-	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
+	      if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+	      else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
 	      else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
 	      else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
 	      else if (strcmp(name,"MeshX")==0) return MeshXEnum;
@@ -381,11 +382,11 @@
 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
 	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
-	      else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
+	      if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
+	      else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
 	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
 	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
 	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
@@ -504,11 +505,11 @@
 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
-	      else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
+	      if (strcmp(name,"MassconName")==0) return MassconNameEnum;
+	      else if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
 	      else if (strcmp(name,"MassconLevelset")==0) return MassconLevelsetEnum;
 	      else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
 	      else if (strcmp(name,"MassconaxpbyName")==0) return MassconaxpbyNameEnum;
@@ -627,11 +628,11 @@
 	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
 	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
 	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
-	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
+	      if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
 	      else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
 	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
 	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
@@ -750,11 +751,11 @@
 	      else if (strcmp(name,"Gradient")==0) return GradientEnum;
 	      else if (strcmp(name,"GroundinglineMigration")==0) return GroundinglineMigrationEnum;
 	      else if (strcmp(name,"Gset")==0) return GsetEnum;
-	      else if (strcmp(name,"Index")==0) return IndexEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"Indexed")==0) return IndexedEnum;
+	      if (strcmp(name,"Index")==0) return IndexEnum;
+	      else if (strcmp(name,"Indexed")==0) return IndexedEnum;
 	      else if (strcmp(name,"Intersect")==0) return IntersectEnum;
 	      else if (strcmp(name,"Nodal")==0) return NodalEnum;
 	      else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
