diff --git a/src/common/proc_args.c b/src/common/proc_args.c
index e09bfb0e77496eec13c14c6fe1a1954adde5ba61..974dc82082dd4aec4600df78f46aed23d146bf43 100644
--- a/src/common/proc_args.c
+++ b/src/common/proc_args.c
@@ -981,16 +981,18 @@ bool verify_hint(const char *arg, int *min_sockets, int *min_cores,
 uint16_t parse_mail_type(const char *arg)
 {
 	char *buf, *tok, *save_ptr = NULL;
-	uint16_t rc = (uint16_t)INFINITE;
+	uint16_t rc = 0;
+	bool none_set = false;
 
 	if (!arg)
-		return rc;
+		return (uint16_t)INFINITE;
 
 	buf = xstrdup(arg);
 	tok = strtok_r(buf, ",", &save_ptr);
 	while (tok) {
 		if (xstrcasecmp(tok, "NONE") == 0) {
 			rc = 0;
+			none_set = true;
 			break;
 		}
 		else if (xstrcasecmp(tok, "ARRAY_TASKS") == 0)
@@ -1019,6 +1021,8 @@ uint16_t parse_mail_type(const char *arg)
 		tok = strtok_r(NULL, ",", &save_ptr);
 	}
 	xfree(buf);
+	if (!rc && !none_set)
+		rc = (uint16_t)INFINITE;
 
 	return rc;
 }