Index: ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18688)
+++ ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18689)
@@ -139,6 +139,7 @@
 		}
 		return NULL;
 	}
+
 	/* Intermediaries */
 	IssmDouble  D_scalar,Jdet,dt;
 	IssmDouble  epl_thickness;
@@ -196,7 +197,7 @@
 			
 			/*Transfer EPL part*/
 			transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
-			D_scalar=transfer*gauss->weight*Jdet*dt;
+			D_scalar=transfer*gauss->weight*Jdet;
 			TripleMultiply(basis,numnodes,1,0,
 										 &D_scalar,1,1,0,
 										 basis,1,numnodes,0,
@@ -291,7 +292,7 @@
 			
 			/*Dealing with the epl part of the transfer term*/
 			transfer=GetHydrologyPVectorTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
-			scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer*dt));
+			scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer));
 			for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
 		}
 	}
@@ -421,15 +422,17 @@
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(leakage);
-			}
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(leakage); */
+			/* } */
+			transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
 		}
-		else{ 
+		else{
 			transfer=(leakage);
+			
 		}
 		break;
 	default:
@@ -468,20 +471,22 @@
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
 
  		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(sediment_head*leakage);
-			}
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(sediment_head*leakage); */
+			/* } */
+			transfer=sediment_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
 		}
-		else{ 
+		else{
 			transfer=(sediment_head*leakage);
 		}
 		break;
 	default:
 		_error_("no case higher than 1 for the Transfer method");
 	}
+
 	return transfer;
 }/*}}}*/
 
@@ -670,7 +675,9 @@
 		}
 		/*Increase of the efficient system is needed if the epl head reach the maximum value (sediment max value for now)*/
 		GetHydrologyDCInefficientHmax(&h_max,basalelement,basalelement->nodes[i]);
+
 		if(eplhead[i]>=h_max && active_element){
+
 			for(j=0;j<numnodes;j++){
 				if(old_active[j]>0.){
 					vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL);
Index: ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 18688)
+++ ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 18689)
@@ -240,7 +240,7 @@
 				if(active_element){
 					transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
 					basalelement->NodalFunctions(&basis[0],gauss);
-					D_scalar=transfer*gauss->weight*Jdet*dt;
+					D_scalar=transfer*gauss->weight*Jdet;
 					TripleMultiply(basis,numnodes,1,0,
 												 &D_scalar,1,1,0,
 												 basis,1,numnodes,0,
@@ -344,7 +344,7 @@
 				else{
 					transfer=0.0;
 				}
-				scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(dt*transfer));
+				scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(transfer));
 				for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
 			}
 			else{
@@ -595,14 +595,15 @@
 		hmax=GetHydrologyDCInefficientHmax(element, gauss, thick_input, base_input);
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(leakage);
-			}
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(leakage); */
+			/* } */
+			transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
 		}
-		else{ 
+		else{
 			transfer=(leakage);
 		}		
 		break;
@@ -638,14 +639,15 @@
 		hmax=GetHydrologyDCInefficientHmax(element, gauss, thick_input, base_input);
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(epl_head*leakage);
-			}
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(epl_head*leakage); */
+			/* } */
+			transfer=epl_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
 		}
-		else{ 
+		else{
 			transfer=(epl_head*leakage);
 		}
 		break;
