Index: /issm/trunk-jpl/src/m/classes/toolkits.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/toolkits.py	(revision 22842)
+++ /issm/trunk-jpl/src/m/classes/toolkits.py	(revision 22843)
@@ -80,5 +80,5 @@
 
 		#write header
-		fid.write("%s%s%s\n" % ('%Petsc options file: ',filename,' written from Matlab toolkits array'))
+		fid.write("%s%s%s\n" % ('%Toolkits options file: ',filename,' written from Python toolkits array'))
 
 		#start writing options
@@ -88,5 +88,4 @@
 			#first write analysis:
 			fid.write("\n+%s\n" % analysis)    #append a + to recognize it's an analysis enum
-
 			#now, write options
 			for optionname,optionvalue in options.iteritems():
Index: /issm/trunk-jpl/src/m/io/loadvars.py
===================================================================
--- /issm/trunk-jpl/src/m/io/loadvars.py	(revision 22842)
+++ /issm/trunk-jpl/src/m/io/loadvars.py	(revision 22843)
@@ -58,5 +58,5 @@
 	if whichdb(filename):
 		print "Loading variables from file '%s'." % filename
-		
+
 		my_shelf = shelve.open(filename,'r') # 'r' for read-only
 		if nvdict:
@@ -167,6 +167,11 @@
 						elif vardim==2:
 							#dealling with dict
-							if varval.dtype==str:
-								Tree.__dict__[str(var)]=OrderedDict(zip(varval[:,0], varval[:,1]))
+							if varval.dtype==str: #that is for toolkits wich needs to be ordered
+								if any(varval[:,0]=='toolkit'):								#toolkit definition have to be first
+									Tree.__dict__[str(var)]=OrderedDict([('toolkit', str(varval[np.where(varval[:,0]=='toolkit')[0][0],1]))])
+
+								strings1=[str(arg[0]) for arg in varval if arg[0]!='toolkits']
+								strings2=[str(arg[1]) for arg in varval if arg[0]!='toolkits']
+								Tree.__dict__[str(var)].update(zip(strings1, strings2))
 							else:
 								if type(Tree)==list:
