diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index e83330b084fabf51d17314b44630ba9dd8ef9367..1c5fec375714d927025e0fbe03892c3f2222b7cb 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -266,7 +266,7 @@ void slurm_free_kill_tasks_msg ( kill_tasks_msg_t * msg )
 
 void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
 {
-	job_desc_msg -> contiguous = SLURM_JOB_DESC_DEFAULT_CONTIGUOUS ;
+	job_desc_msg -> contiguous = (uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS ;
 	job_desc_msg -> dist = SLURM_JOB_DESC_DEFAULT_DIST ;
 	job_desc_msg -> features = SLURM_JOB_DESC_DEFAULT_FEATURES ;
 	job_desc_msg -> groups = SLURM_JOB_DESC_DEFAULT_GROUPS ; /* will be set by api */
@@ -281,7 +281,7 @@ void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
         job_desc_msg -> procs_per_task = SLURM_JOB_DESC_DEFAULT_PROCS_PER_TASK ;
 	job_desc_msg -> req_nodes = SLURM_JOB_DESC_DEFAULT_REQ_NODES ;
 	job_desc_msg -> job_script = SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT ;
-	job_desc_msg -> shared = SLURM_JOB_DESC_DEFAULT_SHARED ;
+	job_desc_msg -> shared = (uint16_t) SLURM_JOB_DESC_DEFAULT_SHARED ;
 	job_desc_msg -> time_limit = SLURM_JOB_DESC_DEFAULT_TIME_LIMIT ;
 	job_desc_msg -> num_procs = SLURM_JOB_DESC_DEFAULT_NUM_PROCS ;
 	job_desc_msg -> num_nodes = SLURM_JOB_DESC_DEFAULT_NUM_NODES ;
diff --git a/src/common/slurm_protocol_socket_implementation.c b/src/common/slurm_protocol_socket_implementation.c
index d8fed427643fc616154689b1e86d8479ec86e572..663884e196733bba16fee264b7dc1b86c6b56f63 100644
--- a/src/common/slurm_protocol_socket_implementation.c
+++ b/src/common/slurm_protocol_socket_implementation.c
@@ -104,12 +104,13 @@ ssize_t _slurm_msg_sendto ( slurm_fd open_fd, char *buffer , size_t size , uint3
 
 	/* ignore SIGPIPE so that send can return a error code if the other side closes the socket */
 	signal(SIGPIPE, SIG_IGN);
-	
+
 	pack32 (  size , ( void ** ) & size_buffer , & size_buffer_len ) ;
-	
+
 	if ( ( send_len = _slurm_send ( open_fd , size_buffer_temp , sizeof ( uint32_t ) , SLURM_PROTOCOL_NO_SEND_RECV_FLAGS ) ) != sizeof ( uint32_t ) )
 	{
 		info ( "Error sending length of datagram" ) ;
+		signal(SIGPIPE, SIG_DFL);
 		return SLURM_PROTOCOL_ERROR ;
 	}
 
@@ -117,9 +118,11 @@ ssize_t _slurm_msg_sendto ( slurm_fd open_fd, char *buffer , size_t size , uint3
 	if ( send_len != size )
 	{
 		info ( "_slurm_msg_sendto only transmitted %i of %i bytes", send_len , size ) ;
+		signal(SIGPIPE, SIG_DFL);
 		return SLURM_PROTOCOL_ERROR ;
 	}
 
+	signal(SIGPIPE, SIG_DFL);
 	return send_len ;
 }