Index: /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19342)
+++ /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19343)
@@ -42,5 +42,5 @@
 		femmodel->parameters->FindParam(&solutiontype,SolutionTypeEnum);
 		EnumToStringx(&solutiontypestring,solutiontype);
-		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,1));
+		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-1));
 		xDelete<char>(solutiontypestring);
 	}
Index: /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19342)
+++ /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19343)
@@ -28,7 +28,15 @@
 result  = ReadData(fid);
 if isempty(result), error(['no results found in binary file ' filename]); end
+check_nomoresteps=0;
 counter = 1;
 step    = result.step;
 while ~isempty(result), 
+
+	if check_nomoresteps,
+		%check that the new result does not add a step, which would be an error: 
+		if result.step>=1,
+			error('parsing results for a steady-state core, which incorporates transient results!');
+		end
+	end
 
 	%Check step, increase counter if this is a new step
@@ -39,5 +47,13 @@
 
 	%Add result
-	if(result.step==1),
+	if(result.step==-1), 
+		%specialty case, put this result at the beginning of the structure
+		index = 1;
+		result.step=0;
+	elseif(result.step==0),
+		%if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
+		index = 1;
+		check_nomoresteps=1;
+	elseif(result.step==1),
 		index = 1;
 	else
