Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 27821)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 27822)
@@ -435,4 +435,5 @@
 	/*First, recover current time from parameters: */
 	bool linear_interp,average,cycle;
+	int  timestepping;
 	IssmDouble dt;
 	this->parameters->FindParam(&linear_interp,TimesteppingInterpForcingEnum);
@@ -440,4 +441,5 @@
 	this->parameters->FindParam(&cycle,TimesteppingCycleForcingEnum);
 	this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);          /*transient core time step*/
+	this->parameters->FindParam(&timestepping,TimesteppingTypeEnum);
 
 	if(cycle){
@@ -447,9 +449,12 @@
 		IssmDouble time1 = this->timesteps[this->numtimesteps - 1];
 
-		/*We need the end time to be the last timestep that would be taken*/
-		/* i.e., the case where GEMB has time stamps (finer timestep) after the last timestep */
-		IssmDouble nsteps = reCast<int,IssmDouble>(time1/dt);
-		if (reCast<IssmDouble>(nsteps)<time1/dt) nsteps=nsteps+1;
-		time1 = nsteps*dt;
+		if(timestepping!=AdaptiveTimesteppingEnum){
+			/*We need the end time to be the last timestep that would be taken*/
+			/* i.e., the case where GEMB has time stamps (finer timestep) after the last timestep */
+			/* warning: this assumes dt = constant!!*/
+			IssmDouble nsteps = reCast<int,IssmDouble>(time1/dt);
+			if (reCast<IssmDouble>(nsteps)<time1/dt) nsteps=nsteps+1;
+			time1 = nsteps*dt;
+		}
 
 		/*See by how many intervals we have to offset time*/
