diff --git a/NEWS b/NEWS
index 63f6834319d6d1abb84cbeedc868e2d8345664f3..96ec312c56b10df459ee30fb4cad6065d885b0b6 100644
--- a/NEWS
+++ b/NEWS
@@ -108,7 +108,8 @@ documents those changes that are of interest to users and admins.
     modified to permit the partition limit to be exceeded. Patch from Bill
     Brophy, Bull.
  -- BLUEGENE - Fixed preemption issue.
- -- sacct search for jobs using filtering was ignoring wckey filter. 
+ -- sacct search for jobs using filtering was ignoring wckey filter.
+ -- Fixed issue with QOS preemption when adding new QOS.
 
 * Changes in SLURM 2.3.2
 ========================
diff --git a/src/plugins/accounting_storage/mysql/as_mysql_qos.c b/src/plugins/accounting_storage/mysql/as_mysql_qos.c
index b7b71509865ab2381f170bb2789e18f3ec687248..3102e90b84ab4b599d279ea170653652ed811507 100644
--- a/src/plugins/accounting_storage/mysql/as_mysql_qos.c
+++ b/src/plugins/accounting_storage/mysql/as_mysql_qos.c
@@ -92,6 +92,8 @@ static int _setup_qos_limits(slurmdb_qos_rec_t *qos,
 			qos->description = xstrdup("");
 		if (qos->flags & QOS_FLAG_NOTSET)
 			qos->flags = 0;
+		if (qos->grace_time == NO_VAL)
+			qos->grace_time = 0;
 		if (qos->grp_cpu_mins == (uint64_t)NO_VAL)
 			qos->grp_cpu_mins = (uint64_t)INFINITE;
 		if (qos->grp_cpu_run_mins == (uint64_t)NO_VAL)
@@ -1115,8 +1117,6 @@ empty:
 
 		if (row[QOS_REQ_GRACE])
 			qos->grace_time = slurm_atoul(row[QOS_REQ_GRACE]);
-		else
-			qos->grace_time = (uint32_t)NO_VAL;
 
 		if (row[QOS_REQ_GCM])
 			qos->grp_cpu_mins = slurm_atoull(row[QOS_REQ_GCM]);