diff --git a/src/srun/launch.c b/src/srun/launch.c
index a3386d461c9aed428f4079d2ff1021cb8ac35ac2..02292a20cedbbbd335051bc7e268951d2159a28d 100644
--- a/src/srun/launch.c
+++ b/src/srun/launch.c
@@ -133,8 +133,8 @@ _dist_cyclic(job_t *job)
 		bool space_remaining = false;
 		for (i=0; ((i<job->nhosts) && (taskid<opt.nprocs)); i++) {
 			if ((j<job->cpus[i]) || over_subscribe) {
-				job->hostid[taskid] = i;
-				job->tids[i][j]     = taskid++;
+				job->hostid[taskid]         = i;
+				job->tids[i][job->ntask[i]] = taskid++;
 				job->ntask[i]++;
 				if ((j+1) < job->cpus[i])
 					space_remaining = true;