diff --git a/src/plugins/switch/nrt/nrt.c b/src/plugins/switch/nrt/nrt.c
index 6a028a013b83c78c3cc7112dd86ae02959195394..01462a680fbc3e5092234d856c268870e2a0f2b5 100644
--- a/src/plugins/switch/nrt/nrt.c
+++ b/src/plugins/switch/nrt/nrt.c
@@ -129,14 +129,14 @@ typedef struct slurm_nrt_adapter {
 	slurm_nrt_window_t *window_list;
 } slurm_nrt_adapter_t;
 
-typedef struct slurm_nrt_nodeinfo {
+struct slurm_nrt_nodeinfo {
 	uint32_t magic;
 	char name[NRT_HOSTLEN];
 	uint32_t adapter_count;
 	slurm_nrt_adapter_t *adapter_list;
 	struct slurm_nrt_nodeinfo *next;
 	nrt_node_number_t node_number;
-} slurm_nrt_nodeinfo_t;
+};
 
 struct slurm_nrt_libstate {
 	uint32_t magic;
@@ -148,7 +148,7 @@ struct slurm_nrt_libstate {
 	nrt_job_key_t key_index;
 };
 
-typedef struct slurm_nrt_jobinfo {
+struct slurm_nrt_jobinfo {
 	uint32_t magic;
 	/* version from nrt_version() */
 	/* adapter from lid in table */
@@ -164,7 +164,7 @@ typedef struct slurm_nrt_jobinfo {
 
 	hostlist_t nodenames;
 	uint32_t num_tasks;
-} slurm_nrt_jobinfo_t;
+};
 
 typedef struct {
 	char adapter_name[NRT_MAX_ADAPTER_NAME_LEN];
@@ -1957,8 +1957,9 @@ nrt_pack_nodeinfo(slurm_nrt_nodeinfo_t *n, Buf buf)
 		dummy16 = a->adapter_type;
 		pack16(dummy16, buf);	/* adapter_type is an int */
 		pack32(a->ipv4_addr, buf);
-		for (j = 0; j < 4; j++)
-			pack32(a->ipv6_addr.in6_u.u6_addr32[j], buf);
+		for (j = 0; j < 16; j++)
+			pack32(a->ipv6_addr.s6_addr[j], buf);
+//			pack32(a->ipv6_addr.in6_u.u6_addr32[j], buf);
 		pack32(a->lid, buf);
 		pack64(a->network_id, buf);
 		pack8(a->port_id, buf);
@@ -2162,9 +2163,8 @@ _unpack_nodeinfo(slurm_nrt_nodeinfo_t *n, Buf buf, bool believe_window_status)
 		safe_unpack16(&dummy16, buf);
 		tmp_a->adapter_type = dummy16;	/* adapter_type is an int */
 		safe_unpack32(&tmp_a->ipv4_addr, buf);
-		for (j = 0; j < 4; j++) {
-			safe_unpack32(&tmp_a->ipv6_addr.in6_u.u6_addr32[j],
-				      buf);
+		for (j = 0; j < 16; j++) {
+			safe_unpack8(&tmp_a->ipv6_addr.s6_addr[j], buf);
 		}
 		safe_unpack32(&tmp_a->lid, buf);
 		safe_unpack64(&tmp_a->network_id, buf);
@@ -2603,9 +2603,9 @@ _pack_tableinfo(nrt_tableinfo_t *tableinfo, Buf buf, slurm_nrt_jobinfo_t *jp)
 				packmem((char *) &ip_tbl_ptr->ip.ipv4_addr,
 					sizeof(in_addr_t), buf);
 			} else {
-				for (j = 0; j < 4; j++) {
-					pack32(ip_tbl_ptr->ip.ipv6_addr.
-					       in6_u.u6_addr32[j], buf);
+				for (j = 0; j < 16; j++) {
+					pack8(ip_tbl_ptr->ip.ipv6_addr.
+					      s6_addr[j], buf);
 				}
 			}
 			pack32(ip_tbl_ptr->node_number, buf);
@@ -2737,9 +2737,9 @@ _unpack_tableinfo(nrt_tableinfo_t *tableinfo, Buf buf, slurm_nrt_jobinfo_t *jp)
 				if (tmp_32 != sizeof(in_addr_t))
 					goto unpack_error;
 			} else {
-				for (j = 0; j < 4; j++) {
-					safe_unpack32(&ip_tbl_ptr->ip.ipv6_addr.
-						      in6_u.u6_addr32[j], buf);
+				for (j = 0; j < 16; j++) {
+					safe_unpack8(&ip_tbl_ptr->ip.ipv6_addr.
+						     s6_addr[j], buf);
 				}
 			}
 			safe_unpack32(&ip_tbl_ptr->node_number, buf);
diff --git a/src/plugins/switch/nrt/switch_nrt.c b/src/plugins/switch/nrt/switch_nrt.c
index aa562d12c5e70984b3a624661b9c7ee83132b79d..d2c2d73d2cd80096d97471776bce7e79faccb1d4 100644
--- a/src/plugins/switch/nrt/switch_nrt.c
+++ b/src/plugins/switch/nrt/switch_nrt.c
@@ -678,9 +678,12 @@ extern char *switch_p_sprint_jobinfo(switch_jobinfo_t *switch_jobinfo,
 /*
  * switch functions for job initiation
  */
-static int _nrt_version_ok(void)
+static bool _nrt_version_ok(void)
 {
-	return ((NRT_VERSION == 1100) ? 1 : 0);
+	if (NRT_VERSION == 1200)
+		return true;
+	error("switch/nrt: Incompatable NRT version");
+	return false;
 }
 
 int switch_p_node_init(void)