Index: /issm/trunk-jpl/src/c/cores/steadystate_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20092)
+++ /issm/trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20093)
@@ -48,12 +48,14 @@
 	for(;;){
 
-		if(VerboseSolution()) _printf0_("   computing temperature and velocity for step: " << step << "\n");
-		thermal_core(femmodel);
-		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
-		GetSolutionFromInputsx(&tg,femmodel);
+		/* Compute first velocity, then temperature due to high sensitivity of temperature to velocity. */
+		if(VerboseSolution()) _printf0_("   computing velocity and temperature for step: " << step << "\n");
 
 		if(VerboseSolution()) _printf0_("   computing new velocity\n");
 		stressbalance_core(femmodel);
 		GetSolutionFromInputsx(&ug,femmodel);
+
+		thermal_core(femmodel);
+		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
+		GetSolutionFromInputsx(&tg,femmodel);
 
 		if(step>1){
