diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index ad10196d41a612f821a416ef4bfa011fbeaf27e7..c8198c6abac5cae8cfaf53ae57f8f2213e995757 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -39,23 +39,18 @@ slurm_protocol_config_t * slurm_get_api_config ( )
 
 int slurm_api_set_default_config ( )
 {
-	if ( proto_conf == NULL )
-	{
-		slurm_set_addr ( & proto_conf_default . primary_controller , SLURM_PROTOCOL_DEFAULT_PORT , SLURM_PROTOCOL_DEFAULT_PRIMARY_CONTROLLER ) ;
-		slurm_set_addr ( & proto_conf_default . secondary_controller , SLURM_PROTOCOL_DEFAULT_PORT , SLURM_PROTOCOL_DEFAULT_SECONDARY_CONTROLLER ) ;
+	slurm_set_addr ( & proto_conf_default . primary_controller , SLURM_PROTOCOL_DEFAULT_PORT , SLURM_PROTOCOL_DEFAULT_PRIMARY_CONTROLLER ) ;
+	slurm_set_addr ( & proto_conf_default . secondary_controller , SLURM_PROTOCOL_DEFAULT_PORT , SLURM_PROTOCOL_DEFAULT_SECONDARY_CONTROLLER ) ;
+	proto_conf = & proto_conf_default ;
 
-	}	
 	return SLURM_SUCCESS ;
 }
 
 int slurm_set_default_controllers ( char * primary_controller_hostname , char * secondary_controller_hostnme, uint16_t pri_port , uint16_t sec_port )
 {
-	if ( proto_conf == NULL )
-	{
-		slurm_set_addr ( & proto_conf_default . primary_controller , pri_port , primary_controller_hostname ) ;
-		slurm_set_addr ( & proto_conf_default . secondary_controller , sec_port , secondary_controller_hostnme ) ;
+	slurm_set_addr ( & proto_conf_default . primary_controller , pri_port , primary_controller_hostname ) ;
+	slurm_set_addr ( & proto_conf_default . secondary_controller , sec_port , secondary_controller_hostnme ) ;
 
-	}	
 	return SLURM_SUCCESS ;
 }
 
@@ -121,7 +116,7 @@ slurm_fd slurm_open_msg_conn ( slurm_addr * slurm_address )
 slurm_fd slurm_open_controller_conn ( )
 {
 	slurm_fd connection_fd ;
-	
+	slurm_api_set_default_config ( ) ;
 	/* try to send to primary first then secondary */	
 	if ( ( connection_fd = slurm_open_msg_conn ( & proto_conf -> primary_controller ) ) == SLURM_SOCKET_ERROR )
 	{
@@ -453,7 +448,7 @@ int slurm_send_recv_controller_msg ( slurm_msg_t * request_msg , slurm_msg_t * r
         slurm_fd sockfd ;
 
         /* init message connection for message communication with controller */
-        if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
+        if ( ( sockfd = slurm_open_controller_conn ( ) ) == SLURM_SOCKET_ERROR )
                 return SLURM_SOCKET_ERROR ;
 
         /* send request message */
@@ -476,7 +471,7 @@ int slurm_send_only_controller_msg ( slurm_msg_t * request_msg )
         slurm_fd sockfd ;
 
         /* init message connection for message communication with controller */
-        if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
+        if ( ( sockfd = slurm_open_controller_conn ( ) ) == SLURM_SOCKET_ERROR )
                 return SLURM_SOCKET_ERROR ;
 
         /* send request message */
@@ -496,7 +491,7 @@ int slurm_send_only_node_msg ( slurm_msg_t * request_msg )
         slurm_fd sockfd ;
 
         /* init message connection for message communication with controller */
-        if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
+        if ( ( sockfd = slurm_open_controller_conn ( ) ) == SLURM_SOCKET_ERROR )
                 return SLURM_SOCKET_ERROR ;
 
         /* send request message */
diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index 235a0c7c3c6702e07933f8958dc2e13e1fbeae39..c35468633a5b7f834a70e99f8f8f445d0f18c0b7 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -224,11 +224,40 @@ void slurm_free_update_node_msg ( update_node_msg_t * msg )
 		xfree ( msg ) ;
 	}
 }
+
+void slurm_free_launch_tasks_msg ( launch_tasks_msg_t * msg )
+{
+	if ( msg )
+	{
+		if ( msg -> credentials )
+			xfree ( msg -> credentials );
+		if ( msg -> env )
+			xfree ( msg -> env );
+		if ( msg -> cwd )
+			xfree ( msg -> cwd );
+		if ( msg -> cmd_line )
+			xfree ( msg -> cmd_line );
+		xfree ( msg ) ;
+	}
+	/*stdin location*/
+	/*stdout location*/
+	/*stderr location*/
+	/*task completion location*/
+} 
+
+void slurm_free_kill_tasks_msg ( kill_tasks_msg_t * msg )
+{
+	if ( msg )
+	{
+		xfree ( msg ) ;
+	}
+}
+
 /**********************
-***********************
-Init functions
-***********************
-**********************/
+ ***********************
+ Init functions
+ ***********************
+ **********************/
 
 
 void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 7478b801f0b248415253f5e58a3b126b9d87f21a..108dd577eed8c5d7e928d5b586b7531757b9680d 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -81,6 +81,7 @@ typedef enum { test1, test2
 #define REQUEST_LAUNCH_TASKS			6001	
 #define RESPONSE_LAUNCH_TASKS			6002
 #define MESSAGE_TASK_EXIT		 	6003	
+#define REQUEST_KILL_TASKS			6004
 
 /*DPCS get key to sign submissions*/
 #define REQUEST_GET_KEY				8001	
@@ -142,6 +143,30 @@ typedef struct slurm_node_registration_status_msg
  	uint32_t temporary_disk_space ;
 } slurm_node_registration_status_msg_t ;
 
+typedef struct launch_tasks_msg
+{
+	uint32_t job_id ;
+	uint32_t job_step_id ;
+	uint32_t uid ;
+	uint32_t gid ;
+	char * credentials ;
+	uint32_t tasks_to_launch ;
+	char * env ;
+	char * cwd ;
+	char * cmd_line ;
+	/*stdin location*/
+	/*stdout location*/
+	/*stderr location*/
+	/*task completion location*/
+} launch_tasks_msg_t ;
+
+typedef struct kill_tasks_msg
+{
+	uint32_t job_id ;
+	uint32_t job_step_id ;
+} kill_tasks_msg_t ;
+
+
 typedef struct slurm_job_allocation_response_msg
 {
 	uint32_t job_id;
@@ -311,6 +336,8 @@ void inline slurm_free_node_info ( node_info_msg_t * msg ) ;
 void inline slurm_free_node_table ( node_table_t * node ) ;
 void inline slurm_free_node_table_msg ( node_table_t * node ) ;
 void inline slurm_free_update_node_msg ( update_node_msg_t * msg ) ;
+void inline slurm_free_launch_tasks_msg ( launch_tasks_msg_t * msg ) ;
+void inline slurm_free_kill_tasks_msg ( kill_tasks_msg_t * msg ) ;
 
 /* stuct init functions */
 #define SLURM_JOB_DESC_NONCONTIGUOUS		0
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index a6a11988b8d9334754d1aff07f987d919d25ce8d..c7dfe87fbb996d10bf79f9fcdc6c3b4612b83e1c 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -68,7 +68,7 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
 			pack_node_info_msg ( ( slurm_msg_t * ) msg , (void ** ) buffer , buf_len ) ;
 			break ;
 		case MESSAGE_NODE_REGISTRATION_STATUS :
-			pack_node_registration_status_msg ( ( slurm_node_registration_status_msg_t * ) msg , ( void ** ) buffer , buf_len );
+			pack_node_registration_status_msg ( ( slurm_node_registration_status_msg_t * ) msg -> data , ( void ** ) buffer , buf_len );
 			break ;
 		case REQUEST_RESOURCE_ALLOCATION :
 		case REQUEST_SUBMIT_BATCH_JOB :
@@ -85,13 +85,20 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
 		case RESPONSE_JOB_WILL_RUN :
 			pack_job_allocation_response_msg ( ( job_allocation_response_msg_t * ) msg -> data , ( void ** ) buffer , buf_len ) ;
 			break ;
-
-			
 		case REQUEST_UPDATE_NODE :
 			pack_update_node_msg ( ( update_node_msg_t * ) msg-> data , ( void ** ) buffer , buf_len ) ;
 			break ;
 		case REQUEST_UPDATE_PARTITION :
+			//pack_partition_table_msg ( ( partition_desc_msg_t * ) msg->data , ( void ** ) buffer ,  buf_len ) ;
+			break ;
+		case REQUEST_LAUNCH_TASKS :
+			pack_launch_tasks_msg ( ( launch_tasks_msg_t * ) msg->data , ( void ** ) buffer , buf_len ) ;
 			break ;
+		case REQUEST_KILL_TASKS :
+			pack_kill_tasks_msg ( ( kill_tasks_msg_t * ) msg->data , ( void ** ) buffer , buf_len ) ;
+			break ;
+
+
 		case REQUEST_CANCEL_JOB :
 			break ;
 		case REQUEST_CANCEL_JOB_STEP :
@@ -110,8 +117,6 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len )
 			break ;
 		case RESPONSE_JOB_ATTACH :
 			break ;
-		case REQUEST_LAUNCH_TASKS :
-			break ;
 		case REQUEST_GET_JOB_STEP_INFO :
 			break ;
 		case RESPONSE_GET_JOB_STEP_INFO :
@@ -197,8 +202,16 @@ int unpack_msg ( slurm_msg_t * msg , char ** buffer , uint32_t * buf_len )
 
 		case REQUEST_UPDATE_NODE :
 			unpack_update_node_msg ( ( update_node_msg_t ** ) & ( msg-> data ) , ( void ** ) buffer , buf_len ) ;
+
 			break ;
 		case REQUEST_UPDATE_PARTITION :
+			unpack_partition_table_msg ( ( partition_desc_msg_t ** ) & ( msg->data ) , ( void ** ) buffer ,  buf_len ) ;
+			break ;
+		case REQUEST_LAUNCH_TASKS :
+			unpack_launch_tasks_msg ( ( launch_tasks_msg_t ** ) & ( msg->data ) , ( void ** ) buffer , buf_len ) ;
+			break ; 
+		case REQUEST_KILL_TASKS :
+			unpack_kill_tasks_msg ( ( kill_tasks_msg_t ** ) & ( msg->data ) , ( void ** ) buffer , buf_len ) ;
 			break ;
 		case REQUEST_CANCEL_JOB :
 			break ;
@@ -218,8 +231,6 @@ int unpack_msg ( slurm_msg_t * msg , char ** buffer , uint32_t * buf_len )
 			break ;
 		case RESPONSE_JOB_ATTACH :
 			break ;
-		case REQUEST_LAUNCH_TASKS :
-			break ;
 		case REQUEST_GET_JOB_STEP_INFO :
 			break ;
 		case RESPONSE_GET_JOB_STEP_INFO :
@@ -766,26 +777,100 @@ int unpack_return_code ( return_code_msg_t ** msg , void ** buffer , uint32_t *
 	return 0 ;
 }
 
+void pack_launch_tasks_msg ( launch_tasks_msg_t * msg , void ** buffer , uint32_t * length )
+{
+	
+	pack32 ( msg -> job_id , buffer , length ) ;
+	pack32 ( msg -> job_step_id , buffer , length ) ;
+	pack32 ( msg -> uid , buffer , length ) ;
+	pack32 ( msg -> gid , buffer , length ) ;
+	packstr ( msg -> credentials , buffer , length ) ;
+	pack32 ( msg -> tasks_to_launch , buffer , length ) ;
+	packstr ( msg -> env , buffer , length ) ;
+	packstr ( msg -> cwd , buffer , length ) ;
+	packstr ( msg -> cmd_line , buffer , length ) ;
+	/*stdin location*/
+	/*stdout location*/
+	/*stderr location*/
+	/*task completion location*/
+}
+
+int unpack_launch_tasks_msg ( launch_tasks_msg_t ** msg_ptr , void ** buffer , uint32_t * length )
+{
+	uint16_t uint16_tmp;
+	launch_tasks_msg_t * msg ;
+
+	msg = xmalloc ( sizeof ( job_desc_msg_t ) ) ;
+	if (msg == NULL) 
+	{
+		*msg_ptr = NULL ;
+		return ENOMEM ;
+	}
+
+	unpack32 ( & msg -> job_id , buffer , length ) ;
+	unpack32 ( & msg -> job_step_id , buffer , length ) ;
+	unpack32 ( & msg -> uid , buffer , length ) ;
+	unpack32 ( & msg -> gid , buffer , length ) ;
+	unpackstr_xmalloc ( & msg -> credentials , & uint16_tmp , buffer , length ) ;
+	unpack32 ( & msg -> tasks_to_launch , buffer , length ) ;
+	unpackstr_xmalloc ( & msg -> env , & uint16_tmp , buffer , length ) ;
+	unpackstr_xmalloc ( & msg -> cwd , & uint16_tmp , buffer , length ) ;
+	unpackstr_xmalloc ( & msg -> cmd_line , & uint16_tmp , buffer , length ) ;
+	/*stdin location*/
+	/*stdout location*/
+	/*stderr location*/
+	/*task completion location*/
+	*msg_ptr = msg ;
+	return 0 ;
+}
+
+void pack_kill_tasks_msg ( kill_tasks_msg_t * msg , void ** buffer , uint32_t * length )
+{
+	pack32 ( msg -> job_id , buffer , length ) ;
+	pack32 ( msg -> job_step_id , buffer , length ) ;
+}
+
+int unpack_kill_tasks_msg ( kill_tasks_msg_t ** msg_ptr , void ** buffer , uint32_t * length )
+{
+	kill_tasks_msg_t * msg ;
+
+	msg = xmalloc ( sizeof ( job_desc_msg_t ) ) ;
+	if ( msg == NULL) 
+	{
+		*msg_ptr = NULL ;
+		return ENOMEM ;
+	}
+
+	unpack32 ( & msg -> job_id , buffer , length ) ;
+	unpack32 ( & msg -> job_step_id , buffer , length ) ;
+	*msg_ptr = msg ;
+	return 0 ;
+}
+
 /* template 
 void pack_ ( * msg , void ** buffer , uint32_t * length )
 {
 	pack16 ( msg -> , buffer , length ) ;
 	pack32 ( msg -> , buffer , length ) ;
+	packstr ( msg -> , buffer , length ) ;
 }
 
-void unpack_ ( ** msg , void char ** buffer , uint32_t * length )
+void unpack_ ( ** msg_ptr , void ** buffer , uint32_t * length )
 {
 	uint16_t uint16_tmp;
-	job_desc_msg_t * job_desc_ptr ;
+	* msg ;
 
-	job_desc_ptr = xmalloc ( sizeof ( job_desc_msg_t ) ) ;
-	if (job_desc_ptr== NULL) 
+	msg = xmalloc ( sizeof ( job_desc_msg_t ) ) ;
+	if (msg == NULL) 
 	{
-		*msg = NULL ;
+		*msg_ptr = NULL ;
 		return ;
 	}
 
 	unpack16 ( & msg -> , buffer , length ) ;
 	unpack32 ( & msg -> , buffer , length ) ;
+	unpackstr_xmalloc ( & msg -> , & uint16_tmp , buffer , length ) ;
+	*msg_ptr = msg ;
 }
 */
+
diff --git a/src/common/slurm_protocol_pack.h b/src/common/slurm_protocol_pack.h
index dc2a7069bcf0ce32c3666ccec4f312866615569e..e70fc0eba1aa0b1bfc5dedd4036065c6b2d5c6e9 100644
--- a/src/common/slurm_protocol_pack.h
+++ b/src/common/slurm_protocol_pack.h
@@ -17,52 +17,59 @@
 #include <src/common/slurm_protocol_defs.h>
 
 /* Pack / Unpack methods for slurm protocol header */
-void pack_header ( header_t  * header , char ** buffer , uint32_t * length ) ;
+void pack_header ( header_t  * header , char ** buffer , uint32_t * length );
 
-void unpack_header ( header_t * header , char ** buffer , uint32_t * length ) ;
+void unpack_header ( header_t * header , char ** buffer , uint32_t * length );
 
 /* generic case statement Pack / Unpack methods for slurm protocol bodies */
-int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len ) ;
+int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len );
 
-int unpack_msg ( slurm_msg_t * msgi , char ** buffer , uint32_t * buf_len ) ;
+int unpack_msg ( slurm_msg_t * msgi , char ** buffer , uint32_t * buf_len );
 
 /* specific Pack / Unpack methods for slurm protocol bodies */
-void pack_node_registration_status_msg ( slurm_node_registration_status_msg_t * msg , void ** buffer , uint32_t * length ) ;
+void pack_node_registration_status_msg ( slurm_node_registration_status_msg_t * msg , void ** buffer , uint32_t * length );
 
-int unpack_node_registration_status_msg ( slurm_node_registration_status_msg_t ** msg ,  void ** buffer , uint32_t * length ) ;
+int unpack_node_registration_status_msg ( slurm_node_registration_status_msg_t ** msg ,  void ** buffer , uint32_t * length );
 
-void pack_job_desc ( job_desc_msg_t *job_desc_msg_ptr, void ** buffer , int * buf_len ) ;
-int unpack_job_desc ( job_desc_msg_t **job_desc_msg_ptr, void ** buffer , int * buffer_size ) ;
+void pack_job_desc ( job_desc_msg_t *job_desc_msg_ptr, void ** buffer , int * buf_len );
+int unpack_job_desc ( job_desc_msg_t **job_desc_msg_ptr, void ** buffer , int * buffer_size );
 
-void pack_last_update ( last_update_msg_t * msg , void ** buffer , uint32_t * length ) ;
-int unpack_last_update ( last_update_msg_t ** msg , void ** buffer , uint32_t * length ) ;
+void pack_last_update ( last_update_msg_t * msg , void ** buffer , uint32_t * length );
+int unpack_last_update ( last_update_msg_t ** msg , void ** buffer , uint32_t * length );
 
 void pack_return_code ( return_code_msg_t * msg , void ** buffer , uint32_t * length );
 int unpack_return_code ( return_code_msg_t ** msg , void ** buffer , uint32_t * length );
 
-void pack_slurm_ctl_conf ( slurm_ctl_conf_info_msg_t * build_ptr, void ** buffer , int * buffer_size ) ;
-int unpack_slurm_ctl_conf ( slurm_ctl_conf_info_msg_t **build_buffer_ptr, void ** buffer , int * buffer_size ) ;
+void pack_slurm_ctl_conf ( slurm_ctl_conf_info_msg_t * build_ptr, void ** buffer , int * buffer_size );
+int unpack_slurm_ctl_conf ( slurm_ctl_conf_info_msg_t **build_buffer_ptr, void ** buffer , int * buffer_size );
 
-void pack_job_info_msg ( slurm_msg_t * msg , void ** buffer , int * buffer_size ) ;
-int unpack_job_info_msg ( job_info_msg_t ** msg , void ** buffer , int * buffer_size ) ;
-int unpack_job_table_msg ( job_table_t ** job , void ** buf_ptr , int * buffer_size ) ;
-int unpack_job_table ( job_table_t * job , void ** buf_ptr , int * buffer_size ) ;
+void pack_job_info_msg ( slurm_msg_t * msg , void ** buffer , int * buffer_size );
+int unpack_job_info_msg ( job_info_msg_t ** msg , void ** buffer , int * buffer_size );
+int unpack_job_table_msg ( job_table_t ** job , void ** buf_ptr , int * buffer_size );
+int unpack_job_table ( job_table_t * job , void ** buf_ptr , int * buffer_size );
 
-void pack_partition_info_msg ( slurm_msg_t * msg, void ** buf_ptr , int * buffer_size ) ;
-int unpack_partition_info_msg ( partition_info_msg_t ** , void ** buffer , int * buffer_size ) ;
-int unpack_partition_table_msg ( partition_table_msg_t ** part , void ** buf_ptr , int * buffer_size ) ;
-int unpack_partition_table ( partition_table_msg_t * part , void ** buf_ptr , int * buffer_size ) ;
+void pack_partition_info_msg ( slurm_msg_t * msg, void ** buf_ptr , int * buffer_size );
+int unpack_partition_info_msg ( partition_info_msg_t ** , void ** buffer , int * buffer_size );
+int unpack_partition_table_msg ( partition_table_msg_t ** part , void ** buf_ptr , int * buffer_size );
+int unpack_partition_table ( partition_table_msg_t * part , void ** buf_ptr , int * buffer_size );
 
-void pack_node_info_msg ( slurm_msg_t * msg, void ** buf_ptr , int * buffer_size ) ;
-int unpack_node_info_msg ( node_info_msg_t ** msg , void ** buf_ptr , int * buffer_size ) ;
-int unpack_node_table_msg ( node_table_msg_t ** node , void ** buf_ptr , int * buffer_size ) ;
-int unpack_node_table ( node_table_msg_t * node , void ** buf_ptr , int * buffer_size ) ;
+void pack_node_info_msg ( slurm_msg_t * msg, void ** buf_ptr , int * buffer_size );
+int unpack_node_info_msg ( node_info_msg_t ** msg , void ** buf_ptr , int * buffer_size );
+int unpack_node_table_msg ( node_table_msg_t ** node , void ** buf_ptr , int * buffer_size );
+int unpack_node_table ( node_table_msg_t * node , void ** buf_ptr , int * buffer_size );
 
-void pack_job_allocation_response_msg ( job_allocation_response_msg_t * msg, void ** buffer , uint32_t * length ) ;
+void pack_job_allocation_response_msg ( job_allocation_response_msg_t * msg, void ** buffer , uint32_t * length );
+int unpack_job_allocation_response_msg ( job_allocation_response_msg_t ** msg , void ** buffer , uint32_t * length );
 
-int unpack_job_allocation_response_msg ( job_allocation_response_msg_t ** msg , void ** buffer , uint32_t * length ) ;
+void pack_update_node_msg ( update_node_msg_t * msg, void ** buffer , uint32_t * length );
+int unpack_update_node_msg ( update_node_msg_t ** msg , void ** buffer , uint32_t * length );
 
-void pack_update_node_msg ( update_node_msg_t * msg, void ** buffer , uint32_t * length ) ;
+void pack_partition_table_msg ( partition_desc_msg_t *  msg , void ** buffer , int * buf_len );
+int unpack_partition_table_msg ( partition_desc_msg_t **  msg_ptr , void ** buffer , int *  buf_len );
 
-int unpack_update_node_msg ( update_node_msg_t ** msg , void ** buffer , uint32_t * length ) ;
+void pack_launch_tasks_msg ( launch_tasks_msg_t * msg , void ** buffer , uint32_t * length );
+int unpack_launch_tasks_msg ( launch_tasks_msg_t ** msg_ptr , void ** buffer , uint32_t * length );
+
+void pack_kill_tasks_msg ( kill_tasks_msg_t * msg , void ** buffer , uint32_t * length );
+int unpack_kill_tasks_msg ( kill_tasks_msg_t ** msg_ptr , void ** buffer , uint32_t * length );
 #endif
diff --git a/src/common/xstring.c b/src/common/xstring.c
index e7acfd610f885fc9d6e3b1f8e892932ccc1c83e6..49e7594d3405f8485dc21d0efc01411c59f258da 100644
--- a/src/common/xstring.c
+++ b/src/common/xstring.c
@@ -19,7 +19,7 @@
 #include <string.h>
 #include <stdio.h>
 #if 	HAVE_STRERROR_R && !HAVE_DECL_STRERROR_R
-char *strerror_r(int, char *, int);
+//char *strerror_r(int, char *, int);
 #endif
 #include <errno.h>
 #if 	HAVE_UNISTD_H