--- slurm-2.2.1/src/plugins/task/affinity/dist_tasks.c	2010-08-04 14:30:08.000000000 -0700
+++ slurm/src/plugins/task/affinity/dist_tasks.c	2011-02-18 09:25:26.000000000 -0700
@@ -956,7 +956,8 @@
 	for (t=0; t<max_tasks && req->cpus_per_task>1; t++) {
 		if (!masks[t])
 			continue;
-		for (i = 0; i < size; i++) {
+		c = 0;                                                
+		for (i = 0; i < size && c<req->cpus_per_task; i++) {  
 			if (bit_test(masks[t], i) == 0)
 				continue;
 			for (j=i+1,c=1; j<size && c<req->cpus_per_task;j++) {
