diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5
index d3a858ed99541bc8dfdb94f83968d0be7e690ca8..64eb91a084d142af2ff099616f9b7d406b716e31 100644
--- a/doc/man/man5/slurm.conf.5
+++ b/doc/man/man5/slurm.conf.5
@@ -292,6 +292,9 @@ BlueGene block wiring (switch state details)
 \fBCPU_Bind\fR
 CPU binding details for jobs and steps
 .TP
+\fBFrontEnd\fR
+Front end node details
+.TP
 \fBGres\fR
 Generic resource details
 .TP
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index 35dfc546bbd73294938ea1702f9d0489f31102e9..954b1ffb710b0fb62590dec6090ab94c2fa5baee 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -1648,6 +1648,7 @@ typedef struct reservation_name_msg {
 #define DEBUG_FLAG_BACKFILL	0x00001000	/* debug for sched/backfill */
 #define DEBUG_FLAG_GANG		0x00002000	/* debug gang scheduler */
 #define DEBUG_FLAG_RESERVATION	0x00004000	/* advanced reservations */
+#define DEBUG_FLAG_FRONT_END	0x00008000	/* front-end nodes */
 
 #define GROUP_FORCE		0x8000	/* if set, update group membership
 					 * info even if no updates to
diff --git a/src/common/node_conf.c b/src/common/node_conf.c
index e4c1c66947d577b1f22c604b3df6af8e7d132d8e..c3633d0850c7a8ce6e602815f9a236c3b5689605 100644
--- a/src/common/node_conf.c
+++ b/src/common/node_conf.c
@@ -467,9 +467,9 @@ static int _list_find_feature (void *feature_entry, void *key)
 /* Log the contents of a frontend record */
 static void _dump_front_end(slurm_conf_frontend_t *fe_ptr)
 {
-	debug("fe name:%s addr:%s port:%u state:%u reason:%s",
-	      fe_ptr->frontends, fe_ptr->addresses,
-	      fe_ptr->port, fe_ptr->node_state, fe_ptr->reason);
+	info("fe name:%s addr:%s port:%u state:%u reason:%s",
+	     fe_ptr->frontends, fe_ptr->addresses,
+	     fe_ptr->port, fe_ptr->node_state, fe_ptr->reason);
 }
 
 /*
@@ -479,12 +479,17 @@ static void _dump_front_end(slurm_conf_frontend_t *fe_ptr)
  */
 extern int build_all_frontend_info (void)
 {
+#ifdef HAVE_FRONT_END
 	slurm_conf_frontend_t **ptr_array;
 	slurm_conf_frontend_t *fe_single, *fe_line;
 	int i, count, max_rc = SLURM_SUCCESS;
+	bool front_end_debug;
 
+	if (slurm_get_debug_flags() & DEBUG_FLAG_FRONT_END)
+		front_end_debug = true;
+	else
+		front_end_debug = false;
 	count = slurm_conf_frontend_array(&ptr_array);
-#ifdef HAVE_FRONT_END
 	if (count == 0) {
 		verbose("No FrontendName information available!");
 		if (node_record_count == 0)
@@ -505,7 +510,8 @@ extern int build_all_frontend_info (void)
 		}
 		fe_single->port = node_record_table_ptr->port;
 		fe_single->node_state = NODE_STATE_IDLE;
-		_dump_front_end(fe_single);
+		if (front_end_debug)
+			_dump_front_end(fe_single);
 	}
 
 	for (i = 0; i < count; i++) {
@@ -537,16 +543,18 @@ extern int build_all_frontend_info (void)
 			if (fe_line->reason && fe_line->reason[0])
 				fe_single->reason = xstrdup(fe_line->reason);
 			fe_single->node_state = fe_line->node_state;
-			_dump_front_end(fe_single);
+			if (front_end_debug)
+				_dump_front_end(fe_single);
 		}
 		hostlist_destroy(hl_addr);
 		hostlist_destroy(hl_name);
 	}
+	return max_rc;
 #else
-	if (count != 0)
+	if (slurm_conf_frontend_array(&ptr_array) != 0)
 		fatal("FrontendName information configured!");
+	return SLURM_SUCCESS;
 #endif
-	return max_rc;
 }
 
 /*
diff --git a/src/common/read_config.c b/src/common/read_config.c
index 50025f2e09f9d0da0a889b4a07321bd7e282f70d..6b63e5de80ec01d0a3b953ac3e536feaf9a71d7d 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -463,7 +463,8 @@ static int _parse_frontend(void **dest, slurm_parser_enum_t type,
 		    !s_p_get_string(&node_state, "State", dflt))
 			n->node_state = NODE_STATE_UNKNOWN;
 		else {
-			n->node_state = state_str2int(node_state, value);
+			n->node_state = state_str2int(node_state,
+						      (char *) value);
 			xfree(node_state);
 		}
 
@@ -2980,6 +2981,11 @@ extern char * debug_flags2str(uint32_t debug_flags)
 			xstrcat(rc, ",");
 		xstrcat(rc, "CPU_Bind");
 	}
+	if (debug_flags & DEBUG_FLAG_FRONT_END) {
+		if (rc)
+			xstrcat(rc, ",");
+		xstrcat(rc, "FrontEnd");
+	}
 	if (debug_flags & DEBUG_FLAG_GANG) {
 		if (rc)
 			xstrcat(rc, ",");
@@ -3057,6 +3063,8 @@ extern uint32_t debug_str2flags(char *debug_flags)
 			rc |= DEBUG_FLAG_BG_WIRES;
 		else if (strcasecmp(tok, "CPU_Bind") == 0)
 			rc |= DEBUG_FLAG_CPU_BIND;
+		else if (strcasecmp(tok, "FrontEnd") == 0)
+			rc |= DEBUG_FLAG_FRONT_END;
 		else if (strcasecmp(tok, "Gang") == 0)
 			rc |= DEBUG_FLAG_GANG;
 		else if (strcasecmp(tok, "Gres") == 0)