diff --git a/gridtk/manager.py b/gridtk/manager.py
index d8a43cada4689a765348cd17a506575f6611ba4d..dfb874a92bbe4ffa71d815d6b41891426d4a35f7 100644
--- a/gridtk/manager.py
+++ b/gridtk/manager.py
@@ -206,7 +206,7 @@ class JobManager:
     self.lock()
     for job in self.get_jobs(job_ids):
       job.refresh()
-      if job.status in status and names is None or job.name in names:
+      if job.status in status and (names is None or job.name in names):
         print(job.format(format, dependency_length, None if long else 43))
         if print_array_jobs and job.array:
           print(array_delimiter)
diff --git a/gridtk/script/jman.py b/gridtk/script/jman.py
index 361f4aeac470f8a3b612f6e41b5183d93269f70d..0d7583587ac1e1d912eaf21e537007a3db1070ef 100644
--- a/gridtk/script/jman.py
+++ b/gridtk/script/jman.py
@@ -106,13 +106,13 @@ def submit(args):
       'name': args.name,
       'env': args.env,
       'memfree': args.memory,
-      'hvmem': args.memory,
       'io_big': args.io_big,
   }
 
   if args.array is not None:         kwargs['array'] = get_array(args.array)
   if args.log_dir is not None:       kwargs['log_dir'] = args.log_dir
   if args.dependencies is not None:  kwargs['dependencies'] = args.dependencies
+  if args.queue != 'all.q':          kwargs['hvmem'] = args.memory
   if args.parallel is not None:
     kwargs['pe_opt'] = "pe_mth %d" % args.parallel
     kwargs['memfree'] = "%d%s" % (int(args.memory.rstrip(string.ascii_letters)) * args.parallel, args.memory.lstrip(string.digits))
@@ -136,7 +136,8 @@ def resubmit(args):
     kwargs['queue'] = args.qname
   if args.memory is not None:
     kwargs['memfree'] = args.memory
-    kwargs['hvmem'] = args.memory
+    if args.qname not in (None, 'all.q'):
+      kwargs['hvmem'] = args.memory
   if args.parallel is not None:
     kwargs['pe_opt'] = "pe_mth %d" % args.parallel
     kwargs['memfree'] = "%d%s" % (int(args.memory.rstrip(string.ascii_letters)) * args.parallel, args.memory.lstrip(string.digits))
diff --git a/gridtk/sge.py b/gridtk/sge.py
index cdfae9768cbbb91ee3851e84d4a719af11f453f7..426973e0b3b466dc7ef9a377322d402809146d65 100644
--- a/gridtk/sge.py
+++ b/gridtk/sge.py
@@ -131,7 +131,7 @@ class JobManagerSGE(JobManager):
     self.lock()
     # iterate over all jobs
     jobs = self.get_jobs(job_ids)
-    accepted_old_status = ('success', 'failure') if also_success else ('failure',)
+    accepted_old_status = ('submitted', 'success', 'failure') if also_success else ('submitted', 'failure',)
     for job in jobs:
       # check if this job needs re-submission
       if running_jobs or job.status in accepted_old_status:
@@ -142,6 +142,8 @@ class JobManagerSGE(JobManager):
         # re-submit job to the grid
         arguments = job.get_arguments()
         arguments.update(**kwargs)
+        if ('queue' not in kwargs or kwargs['queue'] == 'all.q') and 'hvmem' in kwargs:
+          del kwargs['hvmem']
         job.set_arguments(kwargs=arguments)
         # delete old status and result of the job
         job.submit()