diff --git a/src/api/step_io.c b/src/api/step_io.c
index d0889b56155918424d2620cda12cf85f3bca8ad5..722961b13cac913bb5321529a7c8a3343ddde880 100644
--- a/src/api/step_io.c
+++ b/src/api/step_io.c
@@ -1195,11 +1195,13 @@ client_io_handler_create(slurm_step_io_fds_t fds,
 
 	for (i = 0; i < cio->num_listen; i++) {
 		eio_obj_t *obj;
+		short port;
 
 		if (net_stream_listen(&cio->listensock[i],
-				      (short *)&cio->listenport[i]) < 0) {
+				      &port) < 0) {
 			fatal("unable to initialize stdio listen socket: %m");
 		}
+		cio->listenport[i] = ntohs(port);
 		debug("initialized stdio listening socket, port %d\n",
 		      ntohs(cio->listenport[i]));
 		/*net_set_low_water(cio->listensock[i], 140);*/
diff --git a/src/api/step_launch.c b/src/api/step_launch.c
index 321c44467521ae51ce00925c2878cc4a17e2a3a2..a9b2e8277a1a9a8c319b2affab6e2eaa7da76f21 100644
--- a/src/api/step_launch.c
+++ b/src/api/step_launch.c
@@ -228,7 +228,7 @@ int slurm_step_launch (slurm_step_ctx ctx,
 	launch.io_port = xmalloc(sizeof(uint16_t) * launch.num_io_port);
 	for (i = 0; i < launch.num_io_port; i++) {
 		launch.io_port[i] =
-			ntohs(ctx->launch_state->client_io->listenport[i]);
+			ctx->launch_state->client_io->listenport[i];
 	}
 	
 	launch.num_resp_port = ctx->launch_state->num_resp_port;
diff --git a/src/srun/launch.c b/src/srun/launch.c
index ae88be750db18294edfc8befb77612ce2373f36e..19915c1dc37ff991869a42d23575b0fe9e31f71e 100644
--- a/src/srun/launch.c
+++ b/src/srun/launch.c
@@ -197,7 +197,7 @@ launch(void *arg)
 	r.num_io_port = job->client_io->num_listen;
 	r.io_port = xmalloc(sizeof(uint16_t) * r.num_io_port);
 	for (i = 0; i < r.num_io_port; i++) {
-		r.io_port[i] = ntohs(job->client_io->listenport[i]);
+		r.io_port[i] = job->client_io->listenport[i];
 	}
 
 	msg_array_ptr[0].msg_type = REQUEST_LAUNCH_TASKS;
diff --git a/src/srun/reattach.c b/src/srun/reattach.c
index e0419d0dfd5951ac0ab4e1e4b2c92cda988ac177..9a727315b532aebd3ea3564da077a2d3cd571888 100644
--- a/src/srun/reattach.c
+++ b/src/srun/reattach.c
@@ -333,8 +333,8 @@ _attach_to_job(srun_job_t *job)
 		r->job_step_id     = job->stepid;
 		r->num_io_port     = 1;
 		r->io_port         = (uint16_t *)xmalloc(sizeof(uint16_t));
-		r->io_port[0]      = ntohs(job->client_io->listenport[
-					   i%job->client_io->num_listen]);
+		r->io_port[0]      = job->client_io->listenport[
+					   i%job->client_io->num_listen];
 		r->num_resp_port   = 1;
 		r->resp_port	   = (uint16_t *)xmalloc(sizeof(uint16_t));
 		r->resp_port[0]    = ntohs(job->jaddr[i%job->njfds].sin_port);