diff --git a/src/squeue/print.c b/src/squeue/print.c
index c620893c5cb51fcf691d09df3a8c3122fa880a05..5f2e09088551aa8f80a273638755c46f48789c95 100644
--- a/src/squeue/print.c
+++ b/src/squeue/print.c
@@ -178,11 +178,14 @@ static bool _merge_job_array(List l, job_info_t * job_ptr)
 		/* We re-purpose the job's node_inx array to store the
 		 * array_task_id values */
 		if (!list_job_ptr->node_inx) {
-			list_job_ptr->node_inx = xmalloc(sizeof(int32_t) * 0xffff);
-			list_job_ptr->node_inx[0] = 1;		/* offset */
-			list_job_ptr->node_inx[1] =
+			list_job_ptr->node_inx =
+				xmalloc(sizeof(int32_t) * 0xffff);
+			list_job_ptr->node_inx[0] = 1;	/* offset */
+			list_job_ptr->node_inx[1] =	/* array task ID */
 				list_job_ptr->array_task_id;
 		}
+		if (list_job_ptr->node_inx[0] >= 0xfffe)
+			break;	/* No more room in node_inx array */
 		list_job_ptr->node_inx[0]++;
 		list_job_ptr->node_inx[list_job_ptr->node_inx[0]] =
 				job_ptr->array_task_id;