Index: /issm/trunk-jpl/src/m/classes/clusters/acenet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19335)
@@ -131,9 +131,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/castor.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 19335)
@@ -86,9 +86,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/cloud.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19335)
@@ -81,14 +81,22 @@
 
 		end %}}}
-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			if cluster.interactive, 
 				disp('sending files to remote cluster. once done, please log into cluster and launch job');
-				launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz '];
+				if ~isempty(restart)
+					launchcommand=['cd ' cluster.executionpath ' && cd ' dirname];
+				else
+					launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz '];
+				end
 			else
 				disp('launching solution sequence on remote cluster');
-				launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub  ' modelname '.queue '];
+				if ~isempty(restart)
+					launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub  ' modelname '.queue '];
+				else
+					launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub  ' modelname '.queue '];
+				end
 			end
 			issmstssh(cluster.name,cluster.login,launchcommand);
Index: /issm/trunk-jpl/src/m/classes/clusters/cosmos.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19335)
@@ -86,9 +86,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/discover.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/discover.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/discover.m	(revision 19335)
@@ -163,11 +163,19 @@
 		 end
 		 %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 if ~cluster.interactive, 
-				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
-			 else
-				 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
+				 if ~isempty(restart)
+					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+				 else
+					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+				 end
+			 else
+				 if ~isempty(restart)
+					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive)];
+				 else
+					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
+				 end
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/gemini.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19335)
@@ -87,9 +87,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 19335)
@@ -226,5 +226,5 @@
 			end
 		end %}}}
-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			if ~ispc,
@@ -238,10 +238,16 @@
 
 				if cluster.verbose, disp('launching solution sequence on remote cluster'); end
-				launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
+
+				if ~isempty(restart)
+					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && cd ' dirname ' && source ' modelname '.queue '];
+				else
+					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
+				end
 				issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 			else
 				system([modelname '.bat']);
 			end
+
 		end %}}}
 		function Download(cluster,dirname,filelist)% {{{
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.py	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.py	(revision 19335)
@@ -176,9 +176,12 @@
 
 	# }}}
-	def LaunchQueueJob(self,modelname,dirname,filelist):    # {{{
+	def LaunchQueueJob(self,modelname,dirname,filelist,restart):    # {{{
 
 		print 'launching solution sequence on remote cluster'
-		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
-			(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
+		if restart:
+			launchcommand='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)
+		else:
+			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
+				(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
 		issmssh(self.name,self.login,self.port,launchcommand)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/clusters/generic_static.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19335)
@@ -66,5 +66,5 @@
 			%do nothing
 		end %}}}
-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			if ~ispc,
Index: /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19335)
@@ -154,9 +154,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/hpc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19335)
@@ -148,9 +148,13 @@
 
 		 end %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19335)
@@ -269,12 +269,20 @@
 		 end
 		 %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 %lauch command, to be executed via ssh
 			 if ~cluster.interactive, 
-				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
-			 else
-				 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
+				 if ~isempty(restart)
+					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+				 else
+					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+				 end
+			 else
+				 if ~isempty(restart)
+					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive)];
+				 else
+					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
+				 end
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19335)
@@ -169,9 +169,12 @@
 
 		# }}}
-	def LaunchQueueJob(self,modelname,dirname,filelist):
+	def LaunchQueueJob(self,modelname,dirname,filelist,restart):
 			# {{{
 
 		print 'launching solution sequence on remote cluster'
-		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
+		if restart:
+			launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname)
+		else:
+			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
 		issmssh(self.name,self.login,self.port,launchcommand)
 
Index: /issm/trunk-jpl/src/m/classes/clusters/pollux.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19335)
@@ -70,9 +70,13 @@
 		 end
 		 %}}}
-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
 
 			 disp('launching solution sequence on remote cluster');
-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 if ~isempty(restart)
+				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+			 else
+				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+			 end
 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
 		 end %}}}
Index: /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.m	(revision 19335)
@@ -38,5 +38,5 @@
 	delete([md.miscellaneous.name '.errlog']);
 	delete([md.miscellaneous.name '.outbin']);
-	if ~ispc(),
+	if exist([md.private.runtimename '.tar.gz']) & ~ispc(),
 		delete([md.private.runtimename '.tar.gz']);
 	end
Index: /issm/trunk-jpl/src/m/solve/solve.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/solve.m	(revision 19334)
+++ /issm/trunk-jpl/src/m/solve/solve.m	(revision 19335)
@@ -54,16 +54,18 @@
 end
 
+%If we are restarting, actually use the provided runtime name:
+restart=getfieldvalue(options,'restart','');
 %First, build a runtime name that is unique
-if getfieldvalue(options,'runtimename',true),
-	c=clock;
-	md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
+if restart==1 
+	%Leave the runtimename as is
 else
-	md.private.runtimename=md.miscellaneous.name;
-end
-
-%If we are restarting, actually use the provided runtime name: 
-restart=getfieldvalue(options,'restart',''); 
-if ~isempty(restart),
-	md.private.runtimename=restart;
+	if ~isempty(restart),
+		md.private.runtimename=restart;
+	elseif getfieldvalue(options,'runtimename',true),
+		c=clock;
+		md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
+	else
+		md.private.runtimename=md.miscellaneous.name;
+	end
 end
 
@@ -107,21 +109,22 @@
 
 %Upload all required files
+modelname = md.miscellaneous.name;
+filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
+if ispc,
+	filelist{end+1}=[modelname '.bat '];
+else
+	filelist{end+1}=[modelname '.queue '];
+end
+
+if md.qmu.isdakota,
+	filelist{end+1} = [modelname '.qmu.in'];
+end
+
 if isempty(restart),
-	modelname = md.miscellaneous.name;
-	filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
-	if ispc,
-		filelist{end+1}=[modelname '.bat '];
-	else
-		filelist{end+1}=[modelname '.queue '];
-	end
-
-	if md.qmu.isdakota,
-		filelist{end+1} = [modelname '.qmu.in'];
-	end
 	UploadQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
 end
 
 %launch queue job: 
-LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
+LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist,restart);
 
 %wait on lock
Index: /issm/trunk-jpl/src/m/solve/solve.py
===================================================================
--- /issm/trunk-jpl/src/m/solve/solve.py	(revision 19334)
+++ /issm/trunk-jpl/src/m/solve/solve.py	(revision 19335)
@@ -62,15 +62,17 @@
 
 	#First, build a runtime name that is unique
-	if options.getfieldvalue('runtimename',True):
-		c=datetime.datetime.now()
-		md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
+	restart=options.getfieldvalue('restart','')
+	if restart == 1:
+		pass #do nothing
 	else:
-		md.private.runtimename=md.miscellaneous.name 
-	
-	#If we are restarting, actually use the provided runtime name:
-	restart=options.getfieldvalue('restart','')
-	if restart:
-		md.private.runtimename=restart
-		
+		if restart:
+			md.private.runtimename=restart
+		else:
+			if options.getfieldvalue('runtimename',True):
+				c=datetime.datetime.now()
+				md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
+			else:
+				md.private.runtimename=md.miscellaneous.name 
+
 	#if running qmu analysis, some preprocessing of dakota files using models
 	#fields needs to be carried out. 
@@ -102,13 +104,14 @@
 
 	#Upload all required files: 
+	modelname = md.miscellaneous.name
+	filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
+	if md.qmu.isdakota:
+		filelist.append(modelname+'.qmu.in')
+
 	if not restart:
-		modelname = md.miscellaneous.name
-		filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
-		if md.qmu.isdakota:
-			filelist.append(modelname+'.qmu.in')
 		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
 	
 	#Launch job
-	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
+	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart)
 
 	#wait on lock
