diff --git a/src/api/cancel.c b/src/api/cancel.c
index 8c241e217995bd559a95624e8a9fdab7eb4df1f4..6fa0879912dac051d1b7667feb7f4a2916e7f043 100644
--- a/src/api/cancel.c
+++ b/src/api/cancel.c
@@ -14,14 +14,9 @@
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
 
-#include "slurmlib.h"
+#include <src/api/slurm.h>
+#include <src/common/slurm.h>
 
 #if DEBUG_MODULE
 /* main is used here for testing purposes only */
@@ -46,79 +41,44 @@ main (int argc, char *argv[])
 }
 #endif
 
-
-/*
- * slurm_cancel - cancel the specified job 
- * input: job_id - the job_id to be cancelled
- * output: returns 0 if no error, EINVAL if the request is invalid, 
- *			EAGAIN if the request can not be satisfied at present
- */
-int
-slurm_cancel (uint32_t job_id) 
+slurm_cancel_job ( uint32_t job_id )
 {
-	int buffer_offset, buffer_size, in_size;
-	char *request_msg, *buffer, id_str[20];
-	int sockfd;
-	struct sockaddr_in serv_addr;
+        int msg_size ;
+        int rc ;
+        slurm_fd sockfd ;
+        slurm_msg_t request_msg ;
+        slurm_msg_t response_msg ;
+	job_id_msg_t job_id_msg ;
+        return_code_msg_t * rc_msg ;
 
-	sprintf (id_str, "%u", job_id);
-	request_msg = malloc (strlen (id_str) + 11);
-	if (request_msg == NULL)
-		return EAGAIN;
-	strcpy (request_msg, "JobCancel ");
-	strcat (request_msg, id_str);
+        /* init message connection for message communication with controller */
+        if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
 
-	if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-		return EINVAL;
-	serv_addr.sin_family = PF_INET;
-	serv_addr.sin_addr.s_addr = inet_addr (SLURMCTLD_HOST);
-	serv_addr.sin_port = htons (SLURMCTLD_PORT);
-	if (connect
-	    (sockfd, (struct sockaddr *) &serv_addr,
-	     sizeof (serv_addr)) < 0) {
-		close (sockfd);
-		return EAGAIN;
-	}			
-	if (send (sockfd, request_msg, strlen (request_msg) + 1, 0) <
-	    strlen (request_msg)) {
-		close (sockfd);
-		return EAGAIN;
-	}			
+        /* send request message */
+	job_id_msg . job_id = job_id ;
+        request_msg . msg_type = REQUEST_JOB_CANCEL ;
+        request_msg . data = &job_id_msg ;
+        if ( ( rc = slurm_send_controller_msg ( sockfd , & request_msg ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
 
-	buffer = NULL;
-	buffer_offset = 0;
-	buffer_size = 8 * 1024;
-	while (1) {
-		buffer = realloc (buffer, buffer_size);
-		if (buffer == NULL) {
-			close (sockfd);
-			return EAGAIN;
-		}		
-		in_size =
-			recv (sockfd, &buffer[buffer_offset],
-			      (buffer_size - buffer_offset), 0);
-		if (in_size <= 0) {	/* end of input */
-			in_size = 0;
-			break;
-		}		
-		buffer_offset += in_size;
-		buffer_size += in_size;
-	}
-	close (sockfd);
-	buffer_size = buffer_offset + in_size;
-	buffer = realloc (buffer, buffer_size);
-	if (buffer == NULL)
-		return EAGAIN;
+        /* receive message */
+        if ( ( msg_size = slurm_receive_msg ( sockfd , & response_msg ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
+        /* shutdown message connection */
+        if ( ( rc = slurm_shutdown_msg_conn ( sockfd ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
 
-	if (strcmp (buffer, "EAGAIN") == 0) {
-		free (buffer);
-		return EAGAIN;
-	}			
-	if (strcmp (buffer, "EINVAL") == 0) {
-		free (buffer);
-		return EINVAL;
-	}
-	printf ("%s\n", buffer);
-	free (buffer);
-	return 0;
+        switch ( response_msg . msg_type )
+        {
+                case RESPONSE_SLURM_RC:
+                        rc_msg = ( return_code_msg_t * ) response_msg . data ;
+			return rc_msg -> return_code ;
+                        break ;
+                default:
+                        return SLURM_UNEXPECTED_MSG_ERROR ;
+                        break ;
+        }
+
+        return SLURM_SUCCESS ;
 }
diff --git a/src/api/config_info.c b/src/api/config_info.c
index d2acf1ff5db9b125ca3a2d047c825a7d36946c50..8b4b6327a4b5b8ea87cb930b211dd756b92c17f8 100644
--- a/src/api/config_info.c
+++ b/src/api/config_info.c
@@ -46,6 +46,7 @@ slurm_load_build (time_t update_time, struct build_table **build_table_ptr )
 	slurm_msg_t request_msg ;
 	slurm_msg_t response_msg ;
         last_update_msg_t last_time_msg ; 
+	return_code_msg_t * rc_msg ;
 	
 	/* init message connection for message communication with controller */
 	
@@ -77,7 +78,8 @@ slurm_load_build (time_t update_time, struct build_table **build_table_ptr )
         		return SLURM_SUCCESS ;
                         break ;
                 case RESPONSE_SLURM_RC:
-			return SLURM_NO_CHANGE_IN_DATA ;
+                        rc_msg = ( return_code_msg_t * ) response_msg . data ; 
+			return rc_msg->return_code ;
                         break ;
                 default:
 			return SLURM_UNEXPECTED_MSG_ERROR ;
diff --git a/src/api/job_info.c b/src/api/job_info.c
index 0aa3fce95901a9172775f4000957a18227796e3d..5a537ca928dc65d21ee4cc08132825246054931b 100644
--- a/src/api/job_info.c
+++ b/src/api/job_info.c
@@ -126,7 +126,7 @@ slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_pptr)
         slurm_msg_t request_msg ;
         slurm_msg_t response_msg ;
         last_update_msg_t last_time_msg ;
-	return_code_msg_t * slurm_rc_msg ;
+	return_code_msg_t * rc_msg ;
 
         /* init message connection for message communication with controller */
         if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
@@ -153,7 +153,8 @@ slurm_load_jobs (time_t update_time, job_info_msg_t **job_info_msg_pptr)
         		 *job_info_msg_pptr = ( job_info_msg_t * ) response_msg . data ;
 			break ;
 		case RESPONSE_SLURM_RC:
-			slurm_rc_msg = ( return_code_msg_t * ) response_msg . data ;
+			rc_msg = ( return_code_msg_t * ) response_msg . data ;
+                        return rc_msg -> return_code ;
 			break ;
 		default:
 			return SLURM_UNEXPECTED_MSG_ERROR ;
diff --git a/src/api/slurm.h b/src/api/slurm.h
index e748d3427d65ca9aa9e58f5a2728edc387922397..66c381ac2092e397f764eb75e79920b82cb20459 100644
--- a/src/api/slurm.h
+++ b/src/api/slurm.h
@@ -264,4 +264,4 @@ extern int slurm_reconfigure ();
  * input: a line containing configuration information per the configuration file format
  * output: returns 0 on success, errno otherwise
  */
-extern int update_config (char *spec);
+extern int slurm_update_config (char *spec);
diff --git a/src/api/update_config.c b/src/api/update_config.c
index 953a9a610e782a0815e0bcc9581c30a80911fed9..4911f4a33c3b5d42773148b29dc38f473a3772ed 100644
--- a/src/api/update_config.c
+++ b/src/api/update_config.c
@@ -11,14 +11,8 @@
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-#include <syslog.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-
-#include "slurm.h"
+#include <src/api/slurm.h>
+#include <src/common/slurm_protocol_api.h>
 
 #if DEBUG_MODULE
 /* main is used here for module testing purposes only */
@@ -54,62 +48,46 @@ main (int argc, char *argv[]) {
  * output: returns 0 on success, errno otherwise
  */
 int
-update_config (char *spec) {
-	static int error_code;
-	int buffer_offset, buffer_size, in_size;
-	char *request_msg, *buffer;
-	int sockfd;
-	struct sockaddr_in serv_addr;
-
-	if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-		return EINVAL;
-	serv_addr.sin_family = PF_INET;
-	serv_addr.sin_addr.s_addr = inet_addr (SLURMCTLD_HOST);
-	serv_addr.sin_port = htons (SLURMCTLD_PORT);
-	if (connect
-	    (sockfd, (struct sockaddr *) &serv_addr,
-	     sizeof (serv_addr)) < 0) {
-		close (sockfd);
-		return EINVAL;
-	}			
-	request_msg = malloc (strlen (spec) + 10);
-	if (request_msg == NULL) {
-		close (sockfd);
-		return ENOMEM;
-	}			
-	sprintf (request_msg, "Update %s", spec);
-	if (send (sockfd, request_msg, strlen (request_msg) + 1, 0) <
-	    strlen (request_msg)) {
-		close (sockfd);
-		free (request_msg);
-		return EINVAL;
-	}			
-	free (request_msg);
-	buffer = NULL;
-	buffer_offset = 0;
-	buffer_size = 1024;
-	while (1) {
-		buffer = realloc (buffer, buffer_size);
-		if (buffer == NULL) {
-			close (sockfd);
-			return ENOMEM;
-		}		
-		in_size =
-			recv (sockfd, &buffer[buffer_offset],
-			      (buffer_size - buffer_offset), 0);
-		if (in_size <= 0) {	/* end if input */
-			in_size = 0;
-			break;
-		}		
-		buffer_offset += in_size;
-		buffer_size += in_size;
-	}			
-	close (sockfd);
-	buffer_size = buffer_offset + in_size;
-	buffer = realloc (buffer, buffer_size);
-	if (buffer == NULL)
-		return ENOMEM;
-	error_code = atoi (buffer);
-	free (buffer);
-	return error_code;
+slurm_update_config (char *spec) {
+        int msg_size ;
+        int rc ;
+        slurm_fd sockfd ;
+        slurm_msg_t request_msg ;
+        slurm_msg_t response_msg ;
+	return_code_msg_t * rc_msg ;
+
+        /* init message connection for message communication with controller */
+
+        if ( ( sockfd = slurm_open_controller_conn ( SLURM_PORT ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
+
+
+        /* send request message */
+        /* pack32 ( update_time , &buf_ptr , &buffer_size ); */
+        /*request_msg . msg_type = REQUEST_UPDATE_CONFIG_INFO ;*/
+        request_msg . data = NULL ; 
+
+        if ( ( rc = slurm_send_controller_msg ( sockfd , & request_msg ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
+
+
+        /* receive message */
+        if ( ( msg_size = slurm_receive_msg ( sockfd , & response_msg ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
+        /* shutdown message connection */
+        if ( ( rc = slurm_shutdown_msg_conn ( sockfd ) ) == SLURM_SOCKET_ERROR )
+                return SLURM_SOCKET_ERROR ;
+
+        switch ( response_msg . msg_type )
+        {
+                case RESPONSE_SLURM_RC:
+                        rc_msg = ( return_code_msg_t * ) response_msg . data ;
+                        return rc_msg->return_code ;
+                        break ;
+                default:
+                        return SLURM_UNEXPECTED_MSG_ERROR ;
+                        break ;
+        }
+
+        return SLURM_SUCCESS ;
 }