Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 15411)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 15412)
@@ -62,7 +62,9 @@
 		eplcount=1;
 		//save pointer to old velocity
-		ug_sed_main_iter=ug_sed;
+		ug_sed_main_iter=ug_sed->Duplicate();
+		ug_sed->Copy(ug_sed_main_iter);
 		if(isefficientlayer){
-			ug_epl_main_iter=ug_epl;
+			ug_epl_main_iter=ug_epl->Duplicate();
+			ug_epl->Copy(ug_epl_main_iter);
 		}
 
@@ -83,8 +85,8 @@
 			Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters);
 			delete Kff; delete pf; delete df;
-			if(sedcount>1) delete uf_sed_sub_iter;
+			delete uf_sed_sub_iter;
 			uf_sed_sub_iter=uf_sed->Duplicate();
 			uf_sed->Copy(uf_sed_sub_iter);
-			if(sedcount>1) delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/
+			delete ug_sed;
 			Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys;
 			InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed);
@@ -127,8 +129,8 @@
 				Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters);
 				delete Kff; delete pf; delete df;
-				if(eplcount>1) delete uf_epl_sub_iter; 
+				delete uf_epl_sub_iter; 
 				uf_epl_sub_iter=uf_epl->Duplicate();
 				uf_epl->Copy(uf_epl_sub_iter);
-				if(eplcount>1) delete ug_epl; 
+				delete ug_epl; 
 				Mergesolutionfromftogx(&ug_epl,uf_epl,ys,femmodel->nodes,femmodel->parameters); delete ys;
 				InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_epl);
@@ -162,4 +164,5 @@
 			delete dug;
 			nu_sed=ug_sed_main_iter->Norm(NORM_TWO);
+			delete ug_sed_main_iter;
 			if (xIsNan<IssmDouble>(ndu_sed) || xIsNan<IssmDouble>(nu_sed)) _error_("Sed convergence criterion is NaN!");
 			if (!xIsNan<IssmDouble>(eps_hyd)){
@@ -181,5 +184,5 @@
 					delete dug;
 					nu_epl=ug_epl_main_iter->Norm(NORM_TWO);
-
+					delete ug_epl_main_iter;
 					if (xIsNan<IssmDouble>(ndu_epl) || xIsNan<IssmDouble>(nu_epl)) _error_("EPL convergence criterion is NaN!");
 					if (ndu_epl==0.0 && nu_epl==0.0) nu_epl=1.0e-6; /*Hacking the case where the EPL is used but empty*/
