diff --git a/src/slaunch/opt.c b/src/slaunch/opt.c
index 1d76aed88e187e80ad0f508306fba5b5dbbeabf5..6183a917f2b43868db7ddfc9ce951808d4bd1bb1 100644
--- a/src/slaunch/opt.c
+++ b/src/slaunch/opt.c
@@ -1448,8 +1448,11 @@ static void _opt_args(int argc, char **argv)
 		} 
 	}
 
-	if (!opt.num_nodes_set && opt.num_tasks < opt.num_nodes)
+	if (!opt.num_nodes_set
+	    && opt.num_tasks_set && opt.num_tasks < opt.num_nodes)
 		opt.num_nodes = opt.num_tasks;
+	if (!opt.num_tasks_set)
+		opt.num_tasks = opt.num_nodes;
 
 	if (!_opt_verify())
 		exit(1);