Index: /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 22958)
+++ /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 22959)
@@ -708,4 +708,5 @@
 	IssmDouble rho_ice,rho_water,minthickness;
 	Element*   basalelement=NULL;
+	int        isgroundingline=0;
 
 	element->FindParam(&domaintype,DomainTypeEnum);
@@ -751,6 +752,8 @@
 	basalelement->GetInputListOnNodes(&phi[0],MaskGroundediceLevelsetEnum);
 	basalelement->GetInputListOnNodes(&sealevel[0],SealevelEnum);
-	basalelement->GetInputListOnNodes(&bed[0],BedEnum);
 	basalelement->GetInputListOnNodes(&cumdeltathickness[0],SealevelriseCumDeltathicknessEnum);
+
+	element->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
+	if(isgroundingline) basalelement->GetInputListOnNodes(&bed[0],BedEnum);
 
 	/*What is the delta thickness forcing the sea-level rise core: cumulated over time, hence the +=:*/
@@ -768,6 +771,12 @@
 		if (phi[i]>0.){ //this is an ice sheet: just add thickness to base.
 			/*Update! actually, the bed has moved too!:*/
-			newsurface[i] = bed[i]+newthickness[i]; //surface = bed + newthickness
-			newbase[i]     = bed[i];                 //new base at new bed
+			if(isgroundingline){
+				newsurface[i] = bed[i]+newthickness[i]; //surface = bed + newthickness
+				newbase[i]     = bed[i];                 //new base at new bed
+			}
+			else{
+				 newsurface[i] = oldbase[i]+newthickness[i]; //surface = oldbase + newthickness
+				 newbase[i]     = oldbase[i];                 //same base: do nothing
+			}
 		}
 		else{ //this is an ice shelf: hydrostatic equilibrium*/
