Index: /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19347)
+++ /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19348)
@@ -61,7 +61,4 @@
 	end
 	results(index).step=result.step;
-	if result.time~=-9999,
-		results(index).time=result.time; 
-	end
 	results(index).(result.fieldname)=result.field;
 
Index: /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py
===================================================================
--- /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19347)
+++ /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19348)
@@ -34,25 +34,62 @@
 		raise IOError("loadresultsfromdisk error message: could not open '%s' for binary reading." % filename)
 
+	#initialize results: 
 	results=[]
+	results.append(None)
 
 	#Read fields until the end of the file.
 	result=ReadData(fid)
-	while result:
-		print result['step']
-		if   result['step'] > len(results):
-			for i in xrange(len(results),result['step']-1):
+
+	counter=0
+	check_nomoresteps=0
+	step=result['step']
+
+	while result:
+
+		if check_nomoresteps:
+			#check that the new result does not add a step, which would be an error: 
+			if result['step']>=1:
+				raise TypeError("parsing results for a steady-state core, which incorporates transient results!")
+
+		#Check step, increase counter if this is a new step
+		if(step!=result['step'] and result['step']>1):
+			counter = counter + 1
+			step    = result['step']
+
+		#Add result
+		if result['step']==-1:
+			#specialty case, put this result at the beginning of the structure
+			index = 0
+			result['step']=0
+		elif result['step']==0:
+			#if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
+			index = 0;
+			check_nomoresteps=1
+	
+		elif result['step']==1:
+			index = 0
+		else:
+			index = counter;
+	
+		if index > len(results)-1:
+			for i in xrange(len(results)-1,index-1):
 				results.append(None)
 			results.append(resultsclass.results())
-		elif results[result['step']-1] is None:
-			results[result['step']-1]=resultsclass.results()
+		
+		elif results[index] is None:
+			results[index]=resultsclass.results()
+
+		if index==0 and  step==3:
+			print result
+			
 		#Get time and step
-		setattr(results[result['step']-1],'step',result['step'])
-		setattr(results[result['step']-1],'time',result['time']) 
+		setattr(results[index],'step',result['step'])
+		setattr(results[index],'time',result['time']) 
 	
 		#Add result
-		if hasattr(results[result['step']-1],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
-			setattr(results[result['step']-1],result['fieldname'],numpy.vstack((getattr(results[result['step']-1],result['fieldname']),result['field'])))
-		else:
-			setattr(results[result['step']-1],result['fieldname'],result['field'])
+		if hasattr(results[index],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
+			setattr(results[index],result['fieldname'],numpy.vstack((getattr(results[index],result['fieldname']),result['field'])))
+		else:
+			setattr(results[index],result['fieldname'],result['field'])
 
 		#read next result
