Index: /issm/trunk/src/c/solutions/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 4472)
+++ /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 4473)
@@ -49,6 +49,6 @@
 		if(verbose)_printf_("saving results:\n");
 		if(solution_type==ThermalSolutionEnum){
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i,time);
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MeltingRateEnum,i,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
+			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MeltingRateEnum,i+1,time);
 		}
 
Index: /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 4472)
+++ /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 4473)
@@ -129,8 +129,9 @@
 	VecFree(&tf);
 	VecFree(&tf_old);
-	delete solver_string;
+	xfree((void**)&solver_string);
 
 	/*Assign output pointers: */
-	*ptg=tg;
-	*pmelting_offset=melting_offset;
+	if(ptg)*ptg=tg;
+	else VecFree(&tg);
+	if(pmelting_offset)*pmelting_offset=melting_offset;
 }
