diff --git a/src/common/qsw.c b/src/common/qsw.c
index f10d9d97ba1af918ed7b680db7fbdc7c8119134d..5a30c8342d2e58d1a157787f1240304c586bc304 100644
--- a/src/common/qsw.c
+++ b/src/common/qsw.c
@@ -523,7 +523,8 @@ _init_elan_capability(ELAN_CAPABILITY *cap, int nprocs, int nnodes,
 
 			for (j = 0; j < task_cnt; j++) {
 				if (cyclic_alloc)
-					bit = (i-cap->LowNode) + (j*nnodes);
+					bit = (i-cap->LowNode) + ( j * 
+					 (cap->HighNode - cap->LowNode + 1));
 				else
 					bit = ((i-cap->LowNode)
 					       * max_procs_per_node) + j;