diff --git a/NEWS b/NEWS
index 488478f2809e0c37debf16f3ac56e5514039b6f6..483a21b0385afb1cb423048b2c9ff3ea0c596647 100644
--- a/NEWS
+++ b/NEWS
@@ -263,6 +263,7 @@ documents those changes that are of interest to users and administrators.
  -- Remove logic that was creating GRES bitmap for node when not needed (only
     needed when GRES mapped to specific files).
  -- BLUEGENE - Fix sinfo -tr before it would only print idle nodes correctly.
+ -- Fix for licenses_only reservation on bluegene systems.
 
 * Changes in Slurm 14.03.8
 ==========================
diff --git a/src/slurmctld/reservation.c b/src/slurmctld/reservation.c
index 3fc99bd26df70301ce508f8f0cf4119b31e42378..9e85c167083192d40d5092b3a02d332f873a8aff 100644
--- a/src/slurmctld/reservation.c
+++ b/src/slurmctld/reservation.c
@@ -3538,6 +3538,11 @@ static bitstr_t *_pick_idle_node_cnt(bitstr_t *avail_bitmap,
 		   (resv_desc_ptr->flags & RESERVE_FLAG_IGN_JOBS)) {
 		return select_g_resv_test(resv_desc_ptr, node_cnt,
 					  avail_bitmap, core_bitmap);
+	} else if ((node_cnt == 0) &&
+		   ((resv_desc_ptr->core_cnt == NULL) ||
+		    (resv_desc_ptr->core_cnt[0] == 0)) &&
+		   (resv_desc_ptr->flags & RESERVE_FLAG_LIC_ONLY)) {
+		return bit_alloc(bit_size(avail_bitmap));
 	}
 
 	orig_bitmap = bit_copy(avail_bitmap);
@@ -4545,19 +4550,21 @@ static void _set_nodes_flags(slurmctld_resv_t *resv_ptr, time_t now,
 	struct node_record *node_ptr;
 
 	if (!resv_ptr->node_bitmap) {
-		error("_set_nodes_flags: reservation %s lacks a bitmap",
-		      resv_ptr->name);
+		error("%s: reservation %s lacks a bitmap",
+		      __func__, resv_ptr->name);
 		return;
 	}
 
 	i_first = bit_ffs(resv_ptr->node_bitmap);
 	if (i_first < 0) {
-		error("_set_nodes_flags: reservation %s includes no nodes",
-		      resv_ptr->name);
+		if ((resv_ptr->flags & RESERVE_FLAG_LIC_ONLY) == 0) {
+			error("%s: reservation %s includes no nodes",
+			      __func__, resv_ptr->name);
+		}
 		return;
 	}
 	i_last  = bit_fls(resv_ptr->node_bitmap);
-	for (i=i_first; i<=i_last; i++) {
+	for (i = i_first; i <= i_last; i++) {
 		if (!bit_test(resv_ptr->node_bitmap, i))
 			continue;