diff --git a/src/salloc/salloc.c b/src/salloc/salloc.c
index 430317395676d624ef67a2199a68881236d98153..ea08eb777166115c0fa76b6bd9c527ad388a2963 100644
--- a/src/salloc/salloc.c
+++ b/src/salloc/salloc.c
@@ -677,11 +677,8 @@ static int _fill_job_desc_from_opts(job_desc_msg_t *desc)
 			desc->geometry[i] = opt.geometry[i];
 	}
 #endif
-	for (i=0; i<HIGHEST_DIMENSIONS; i++) {
-		if (opt.conn_type[i] == (uint16_t)NO_VAL)
-			break;
-		desc->conn_type[i] = opt.conn_type[i];
-	}
+	memcpy(desc->conn_type, opt.conn_type, sizeof(desc->conn_type));
+
 	if (opt.reboot)
 		desc->reboot = 1;
 	if (opt.no_rotate)
diff --git a/src/sbatch/sbatch.c b/src/sbatch/sbatch.c
index eb70be1cc12d1cca8570f17b47c74df68c862d55..50084e4b59665d0667fa591ae7cd81bda56c6727 100644
--- a/src/sbatch/sbatch.c
+++ b/src/sbatch/sbatch.c
@@ -331,11 +331,8 @@ static int _fill_job_desc_from_opts(job_desc_msg_t *desc)
 			desc->geometry[i] = opt.geometry[i];
 	}
 
-	for (i=0; i<HIGHEST_DIMENSIONS; i++) {
-		if (opt.conn_type[i] == (uint16_t)NO_VAL)
-			break;
-		desc->conn_type[i] = opt.conn_type[i];
-	}
+	memcpy(desc->conn_type, opt.conn_type, sizeof(desc->conn_type));
+
 	if (opt.reboot)
 		desc->reboot = 1;
 	if (opt.no_rotate)
diff --git a/src/srun/allocate.c b/src/srun/allocate.c
index a34f96372aa301d3c54f0ddbb9018360ea84c70f..660d7891dfa2396095c8b3100dd809c1d2bf33af 100644
--- a/src/srun/allocate.c
+++ b/src/srun/allocate.c
@@ -654,11 +654,8 @@ job_desc_msg_create_from_opts (void)
 	}
 #endif
 
-	for (i=0; i<HIGHEST_DIMENSIONS; i++) {
-		if (opt.conn_type[i] == (uint16_t)NO_VAL)
-			break;
-		j->conn_type[i] = opt.conn_type[i];
-	}
+	memcpy(j->conn_type, opt.conn_type, sizeof(j->conn_type));
+
 	if (opt.reboot)
 		j->reboot = 1;
 	if (opt.no_rotate)