Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27014)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27015)
@@ -682,5 +682,5 @@
 				sl_input->GetInputValue(&sealevel,gauss);
 				dis_input->GetInputValue(&distance,gauss);
-				if(thickness<min_thickness && bed<sealevel && distance<mig_max*dt){
+				if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt){
 					node->ApplyConstraint(0,+1.);
 				}
@@ -720,5 +720,5 @@
 				sl_input->GetInputValue(&sealevel,gauss);
 				dis_input->GetInputValue(&distance,gauss);
-				if(thickness<min_thickness && bed<sealevel && distance<mig_max*dt){
+				if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt){
 					node->ApplyConstraint(0,+1.);
 				}
@@ -761,5 +761,5 @@
 				hab_fraction_input->GetInputValue(&hab_fraction,gauss);
 
-				if(thickness<((rho_water/rho_ice)*(1+hab_fraction)*-water_depth) && distance<mig_max*dt){
+				if(thickness<((rho_water/rho_ice)*(1+hab_fraction)*-water_depth) && fabs(distance)<mig_max*dt){
 					node->ApplyConstraint(0,+1.);
 				}
@@ -863,5 +863,5 @@
 						surface_input->GetInputValue(&surface,gauss);
 
-                  /*FIXME: not sure about levelset<0. && levelset>-mig_max*dt! SHould maybe be distance<mig_max*dt*/
+                  /*FIXME: not sure about levelset<0. && fabs(levelset)>-mig_max*dt! SHould maybe be distance<mig_max*dt*/
                   if((surface_crevasse>surface || crevassedepth>crevasse_threshold*thickness) && bed<0. && levelset<0. && levelset>-mig_max*dt && constraint_nodes[node->Lid()]==0.){
 							local_nflipped++;
