Index: /issm/trunk/src/c/solutions/transient2d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient2d_core.cpp	(revision 4727)
+++ /issm/trunk/src/c/solutions/transient2d_core.cpp	(revision 4728)
@@ -9,4 +9,5 @@
 #include "./solutions.h"
 #include "../modules/modules.h"
+#include <float.h>
 
 void transient2d_core(FemModel* femmodel){
@@ -15,8 +16,8 @@
 
 	/*parameters: */
-	int verbose=0;
+	int    verbose       = 0;
 	double finaltime;
-	double dt;
-	int solution_type;
+	double dt,yts;
+	int    solution_type;
 	
 	/*intermediary: */
@@ -28,4 +29,5 @@
 	femmodel->parameters->FindParam(&finaltime,NdtEnum);
 	femmodel->parameters->FindParam(&dt,DtEnum);
+	femmodel->parameters->FindParam(&yts,YtsEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
@@ -34,5 +36,5 @@
 	time=0;
 
-	while(time<finaltime){ //make sure we run up to finaltime.
+	while(time < finaltime - (yts*DBL_EPSILON)){ //make sure we run up to finaltime.
 	
 		/*Increment*/
Index: /issm/trunk/src/c/solutions/transient3d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 4727)
+++ /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 4728)
@@ -11,12 +11,13 @@
 #include "../include/include.h"
 #include "../solvers/solvers.h"
+#include <float.h>
 
 void transient3d_core(FemModel* femmodel){
 
 	/*parameters: */
-	int verbose=0;
+	int    verbose       = 0;
 	double finaltime;
-	double dt;
-	int solution_type;
+	double dt,yts;
+	int    solution_type;
 	
 	/*intermediary: */
@@ -28,4 +29,5 @@
 	femmodel->parameters->FindParam(&finaltime,NdtEnum);
 	femmodel->parameters->FindParam(&dt,DtEnum);
+	femmodel->parameters->FindParam(&yts,YtsEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
@@ -34,5 +36,5 @@
 	time=0;
 
-	while(time<finaltime){ //make sure we run up to finaltime.
+	while(time < finaltime - (yts*DBL_EPSILON)){ //make sure we run up to finaltime.
 
 		/*Increment*/
Index: /issm/trunk/src/m/solutions/transient2d_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient2d_core.m	(revision 4727)
+++ /issm/trunk/src/m/solutions/transient2d_core.m	(revision 4728)
@@ -9,4 +9,5 @@
 	ndt=femmodel.parameters.Ndt;
 	dt=femmodel.parameters.Dt;
+	yts=femmodel.parameters.Yts;
 	solution_type=femmodel.parameters.SolutionType;
 
@@ -16,5 +17,5 @@
 
 	%Loop through time
-	while time<ndt,
+	while (time < ndt - (yts*eps)),
 
 		%increment
Index: /issm/trunk/src/m/solutions/transient3d_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient3d_core.m	(revision 4727)
+++ /issm/trunk/src/m/solutions/transient3d_core.m	(revision 4728)
@@ -9,4 +9,5 @@
 	ndt=femmodel.parameters.Ndt;
 	dt=femmodel.parameters.Dt;
+	yts=femmodel.parameters.Yts;
 	solution_type=femmodel.parameters.SolutionType;
 
@@ -16,5 +17,5 @@
 
 	%Loop through time
-	while time<ndt,
+	while (time < ndt - (yts*eps)),
 
 		%Increment
