Index: /mpich2/trunk/src/pm/hydra/utils/sock/sock.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/utils/sock/sock.c (revision 4518)
+++ /mpich2/trunk/src/pm/hydra/utils/sock/sock.c (revision 4887)
@@ -222,5 +222,5 @@
 
 
-HYD_Status HYDU_sock_writeline(int fd, char *buf, int maxsize)
+HYD_Status HYDU_sock_writeline(int fd, const char *buf, int maxsize)
 {
     int n;
@@ -286,5 +286,5 @@
 
 
-HYD_Status HYDU_sock_write(int fd, void *buf, int maxsize)
+HYD_Status HYDU_sock_write(int fd, const void *buf, int maxsize)
 {
     int n;
@@ -310,5 +310,5 @@
 
 
-HYD_Status HYDU_sock_trywrite(int fd, void *buf, int maxsize)
+HYD_Status HYDU_sock_trywrite(int fd, const void *buf, int maxsize)
 {
     int n;
Index: /mpich2/trunk/src/pm/hydra/utils/timer/timer.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/utils/timer/timer.c (revision 4140)
+++ /mpich2/trunk/src/pm/hydra/utils/timer/timer.c (revision 4887)
@@ -9,13 +9,13 @@
 /* FIXME: Here we assume that the timer is gettimeofday. */
 
-void HYDU_time_set(HYD_Time * time, int *val)
+void HYDU_time_set(HYD_Time * time_p, int *val)
 {
     if (val == NULL) {
         /* Set time to right now */
-        gettimeofday(time, NULL);
+        gettimeofday(time_p, NULL);
     }
     else {
-        time->tv_sec = *val;
-        time->tv_usec = 0;
+        time_p->tv_sec = *val;
+        time_p->tv_usec = 0;
     }
 }
Index: /mpich2/trunk/src/pm/hydra/utils/env/env.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/utils/env/env.c (revision 4786)
+++ /mpich2/trunk/src/pm/hydra/utils/env/env.c (revision 4887)
@@ -174,5 +174,5 @@
 
 
-HYD_Status HYDU_env_create(HYD_Env_t ** env, char *env_name, char *env_value)
+HYD_Status HYDU_env_create(HYD_Env_t ** env, const char *env_name, char *env_value)
 {
     HYD_Status status = HYD_SUCCESS;
Index: /mpich2/trunk/src/pm/hydra/utils/launch/allocate.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/utils/launch/allocate.c (revision 4836)
+++ /mpich2/trunk/src/pm/hydra/utils/launch/allocate.c (revision 4887)
@@ -243,5 +243,5 @@
 
 
-static int count_elements(char *str, char *delim)
+static int count_elements(char *str, const char *delim)
 {
     int count;
@@ -260,5 +260,5 @@
 
 
-static char *pad_string(char *str, char *pad, int count)
+static char *pad_string(char *str, const char *pad, int count)
 {
     char *tmp[HYD_NUM_TMP_STRINGS], *out;
Index: /mpich2/trunk/src/pm/hydra/utils/args/args.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/utils/args/args.c (revision 4508)
+++ /mpich2/trunk/src/pm/hydra/utils/args/args.c (revision 4887)
@@ -18,5 +18,5 @@
 }
 
-HYD_Status HYDU_find_in_path(char *execname, char **path)
+HYD_Status HYDU_find_in_path(const char *execname, char **path)
 {
     char *user_path = NULL, *tmp[HYD_NUM_TMP_STRINGS], *path_loc = NULL, *test_loc;
@@ -31,19 +31,21 @@
         test_loc = strtok(user_path, ";:");
         do {
-            tmp[0] = test_loc;
-            tmp[1] = "/";
-            tmp[2] = execname;
+            tmp[0] = HYDU_strdup(test_loc);
+            tmp[1] = HYDU_strdup("/");
+            tmp[2] = HYDU_strdup(execname);
             tmp[3] = NULL;
 
             status = HYDU_str_alloc_and_join(tmp, &path_loc);
             HYDU_ERR_POP(status, "unable to join strings\n");
+            HYDU_free_strlist(tmp);
 
             if (exists(path_loc)) {
-                tmp[0] = test_loc;
-                tmp[1] = "/";
+                tmp[0] = HYDU_strdup(test_loc);
+                tmp[1] = HYDU_strdup("/");
                 tmp[2] = NULL;
 
                 status = HYDU_str_alloc_and_join(tmp, path);
                 HYDU_ERR_POP(status, "unable to join strings\n");
+                HYDU_free_strlist(tmp);
 
                 goto fn_exit;   /* We are done */
@@ -71,5 +73,5 @@
 }
 
-HYD_Status HYDU_get_base_path(char *execname, char *wdir, char **path)
+HYD_Status HYDU_get_base_path(const char *execname, char *wdir, char **path)
 {
     char *loc, *post;
@@ -92,10 +94,11 @@
         /* Check if its absolute or relative */
         if (post[0] != '/') {   /* relative */
-            tmp[0] = wdir;
-            tmp[1] = "/";
-            tmp[2] = post;
+            tmp[0] = HYDU_strdup(wdir);
+            tmp[1] = HYDU_strdup("/");
+            tmp[2] = HYDU_strdup(post);
             tmp[3] = NULL;
             status = HYDU_str_alloc_and_join(tmp, path);
             HYDU_ERR_POP(status, "unable to join strings\n");
+            HYDU_free_strlist(tmp);
         }
         else {  /* absolute */
Index: /mpich2/trunk/src/pm/hydra/demux/demux.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/demux/demux.c (revision 4213)
+++ /mpich2/trunk/src/pm/hydra/demux/demux.c (revision 4887)
@@ -99,5 +99,5 @@
 
 
-HYD_Status HYD_DMX_wait_for_event(int time)
+HYD_Status HYD_DMX_wait_for_event(int wtime)
 {
     int total_fds, i, j, events, ret;
@@ -132,5 +132,5 @@
 
     while (1) {
-        ret = poll(pollfds, total_fds, time);
+        ret = poll(pollfds, total_fds, wtime);
         if (ret < 0) {
             if (errno == EINTR) {
Index: /mpich2/trunk/src/pm/hydra/include/hydra_utils.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/include/hydra_utils.h (revision 4835)
+++ /mpich2/trunk/src/pm/hydra/include/hydra_utils.h (revision 4887)
@@ -137,6 +137,6 @@
 
 /* args */
-HYD_Status HYDU_find_in_path(char *execname, char **path);
-HYD_Status HYDU_get_base_path(char *execname, char *wdir, char **path);
+HYD_Status HYDU_find_in_path(const char *execname, char **path);
+HYD_Status HYDU_get_base_path(const char *execname, char *wdir, char **path);
 
 
@@ -154,5 +154,5 @@
 HYD_Status HYDU_list_inherited_env(HYD_Env_t ** env_list);
 HYD_Env_t *HYDU_env_list_dup(HYD_Env_t * env);
-HYD_Status HYDU_env_create(HYD_Env_t ** env, char *env_name, char *env_value);
+HYD_Status HYDU_env_create(HYD_Env_t ** env, const char *env_name, char *env_value);
 HYD_Status HYDU_env_free(HYD_Env_t * env);
 HYD_Status HYDU_env_free_list(HYD_Env_t * env);
@@ -223,9 +223,9 @@
 HYD_Status HYDU_sock_accept(int listen_fd, int *fd);
 HYD_Status HYDU_sock_readline(int fd, char *buf, int maxlen, int *linelen);
-HYD_Status HYDU_sock_writeline(int fd, char *buf, int maxsize);
+HYD_Status HYDU_sock_writeline(int fd, const char *buf, int maxsize);
 HYD_Status HYDU_sock_read(int fd, void *buf, int maxlen, int *count,
                           enum HYDU_sock_comm_flag flag);
-HYD_Status HYDU_sock_write(int fd, void *buf, int maxsize);
-HYD_Status HYDU_sock_trywrite(int fd, void *buf, int maxsize);
+HYD_Status HYDU_sock_write(int fd, const void *buf, int maxsize);
+HYD_Status HYDU_sock_trywrite(int fd, const void *buf, int maxsize);
 HYD_Status HYDU_sock_set_nonblock(int fd);
 HYD_Status HYDU_sock_set_cloexec(int fd);
Index: /mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- /mpich2/trunk/src/pm/hydra/configure.in (revision 4861)
+++ /mpich2/trunk/src/pm/hydra/configure.in (revision 4887)
@@ -14,11 +14,9 @@
 AC_CONFIG_HEADER(include/hydra_config.h)
 
-# Check for special types
-AC_TYPE_SIZE_T
-
 dnl Bug in autoconf adds -O2 and -g by default. Make sure we only get
 dnl the flags we want.
 save_cflags=$CFLAGS
 AC_PROG_CC
+AC_TYPE_SIZE_T
 CFLAGS=$save_cflags
 
@@ -254,13 +252,12 @@
 dnl Debugging support
 AC_ARG_ENABLE(g, [  --enable-g              Enable Debugging],
-		 [ DEBUG=$enableval ],
-		 [ DEBUG=no ])
+		 [ debug=$enableval ],
+		 [ debug=no ])
 AC_MSG_CHECKING(debugging support)
-AC_MSG_RESULT($DEBUG)
-if test "$DEBUG" = "yes"; then
-   EXTRA_CFLAGS="$EXTRA_CFLAGS -g"
+AC_MSG_RESULT($debug)
+if test "$debug" = "yes"; then
+   CFLAGS="$CFLAGS -g"
    AC_DEFINE(ENABLE_DEBUG,1,[Define if debugging support is enabled])
 fi
-AC_SUBST(EXTRA_CFLAGS)
 
 dnl Warning messages
Index: /mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in
===================================================================
--- /mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in (revision 4887)
@@ -10,5 +10,5 @@
 struct HYD_CSSI_fns HYD_CSSI_fns = { 0 };
 
-char *HYD_CSSI_comp_array[] = { @hydra_css_name_array@ };
+const char *HYD_CSSI_comp_array[] = { @hydra_css_name_array@ };
 HYD_Status(*HYD_CSSI_comp_init[])(void) = { @hydra_css_init_array@ };
 
Index: /mpich2/trunk/src/pm/hydra/rmk/src/rmki_init.c.in
===================================================================
--- /mpich2/trunk/src/pm/hydra/rmk/src/rmki_init.c.in (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/rmk/src/rmki_init.c.in (revision 4887)
@@ -13,5 +13,5 @@
 struct HYD_RMKI_fns HYD_RMKI_fns = { 0 };
 
-char *HYD_RMKI_comp_array[] = { @hydra_rmk_name_array@ };
+const char *HYD_RMKI_comp_array[] = { @hydra_rmk_name_array@ };
 HYD_Status(*HYD_RMKI_comp_init[])(void) = { @hydra_rmk_init_array@ };
 
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c (revision 4835)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.c (revision 4887)
@@ -158,5 +158,5 @@
 
 
-HYD_Status HYD_PMCD_pmi_add_kvs(char *key, char *val, HYD_PMCD_pmi_kvs_t * kvs,
+HYD_Status HYD_PMCD_pmi_add_kvs(const char *key, char *val, HYD_PMCD_pmi_kvs_t * kvs,
                                 char **key_pair_str, int *ret)
 {
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.h (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle.h (revision 4887)
@@ -76,5 +76,5 @@
 HYD_Status HYD_PMCD_pmi_id_to_rank(int id, int *rank);
 HYD_PMCD_pmi_process_t *HYD_PMCD_pmi_find_process(int fd);
-HYD_Status HYD_PMCD_pmi_add_kvs(char *key, char *val, HYD_PMCD_pmi_kvs_t * kvs,
+HYD_Status HYD_PMCD_pmi_add_kvs(const char *key, char *val, HYD_PMCD_pmi_kvs_t * kvs,
                                 char **key_pair_str, int *ret);
 HYD_Status HYD_PMCD_pmi_process_mapping(HYD_PMCD_pmi_process_t * process,
@@ -87,5 +87,5 @@
 
 struct HYD_PMCD_pmi_handle_fns {
-    char *cmd;
+    const char *cmd;
      HYD_Status(*handler) (int fd, char *args[]);
 };
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c (revision 4614)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v1.c (revision 4887)
@@ -58,7 +58,5 @@
     status = HYDU_str_alloc_and_join(tmp, &cmd);
     HYDU_ERR_POP(status, "error while joining strings\n");
-
-    for (i = 0; tmp[i]; i++)
-        HYDU_FREE(tmp[i]);
+    HYDU_free_strlist(tmp);
 
     status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
@@ -104,7 +102,5 @@
     status = HYDU_str_alloc_and_join(tmp, &cmd);
     HYDU_ERR_POP(status, "unable to join strings\n");
-
-    for (i = 0; tmp[i]; i++)
-        HYDU_FREE(tmp[i]);
+    HYDU_free_strlist(tmp);
 
     status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
@@ -143,7 +139,5 @@
     status = HYDU_str_alloc_and_join(tmp, &cmd);
     HYDU_ERR_POP(status, "unable to join strings\n");
-
-    for (i = 0; tmp[i]; i++)
-        HYDU_FREE(tmp[i]);
+    HYDU_free_strlist(tmp);
 
     status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
@@ -176,11 +170,12 @@
 
     i = 0;
-    tmp[i++] = "cmd=my_kvsname kvsname=";
-    tmp[i++] = process->node->pg->kvs->kvs_name;
-    tmp[i++] = "\n";
-    tmp[i++] = NULL;
-
-    status = HYDU_str_alloc_and_join(tmp, &cmd);
-    HYDU_ERR_POP(status, "unable to join strings\n");
+    tmp[i++] = HYDU_strdup("cmd=my_kvsname kvsname=");
+    tmp[i++] = HYDU_strdup(process->node->pg->kvs->kvs_name);
+    tmp[i++] = HYDU_strdup("\n");
+    tmp[i++] = NULL;
+
+    status = HYDU_str_alloc_and_join(tmp, &cmd);
+    HYDU_ERR_POP(status, "unable to join strings\n");
+    HYDU_free_strlist(tmp);
 
     status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
@@ -201,5 +196,5 @@
     HYD_PMCD_pmi_process_t *process, *prun;
     HYD_PMCD_pmi_node_t *node;
-    char *cmd;
+    const char *cmd;
     HYD_Status status = HYD_SUCCESS;
 
@@ -272,8 +267,8 @@
 
     i = 0;
-    tmp[i++] = "cmd=put_result rc=";
+    tmp[i++] = HYDU_strdup("cmd=put_result rc=");
     if (process->node->pg->kvs->key_pair == NULL) {
         process->node->pg->kvs->key_pair = key_pair;
-        tmp[i++] = "0 msg=success";
+        tmp[i++] = HYDU_strdup("0 msg=success");
     }
     else {
@@ -281,7 +276,7 @@
         while (run->next) {
             if (!strcmp(run->key, key_pair->key)) {
-                tmp[i++] = "-1 msg=duplicate_key";
+                tmp[i++] = HYDU_strdup("-1 msg=duplicate_key");
                 key_pair_str = HYDU_strdup(key_pair->key);
-                tmp[i++] = key_pair_str;
+                tmp[i++] = HYDU_strdup(key_pair_str);
                 break;
             }
@@ -289,11 +284,12 @@
         }
         run->next = key_pair;
-        tmp[i++] = "0 msg=success";
-    }
-    tmp[i++] = "\n";
-    tmp[i++] = NULL;
-
-    status = HYDU_str_alloc_and_join(tmp, &cmd);
-    HYDU_ERR_POP(status, "unable to join strings\n");
+        tmp[i++] = HYDU_strdup("0 msg=success");
+    }
+    tmp[i++] = HYDU_strdup("\n");
+    tmp[i++] = NULL;
+
+    status = HYDU_str_alloc_and_join(tmp, &cmd);
+    HYDU_ERR_POP(status, "unable to join strings\n");
+    HYDU_free_strlist(tmp);
 
     status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
@@ -339,9 +335,9 @@
 
     i = 0;
-    tmp[i++] = "cmd=get_result rc=";
+    tmp[i++] = HYDU_strdup("cmd=get_result rc=");
     if (process->node->pg->kvs->key_pair == NULL) {
-        tmp[i++] = "-1 msg=key_";
-        tmp[i++] = key;
-        tmp[i++] = "_not_found value=unknown";
+        tmp[i++] = HYDU_strdup("-1 msg=key_");
+        tmp[i++] = HYDU_strdup(key);
+        tmp[i++] = HYDU_strdup("_not_found value=unknown");
     }
     else {
@@ -349,5 +345,5 @@
         while (run) {
             if (!strcmp(run->key, key)) {
-                tmp[i++] = "0 msg=success value=";
+                tmp[i++] = HYDU_strdup("0 msg=success value=");
                 key_val_str = HYDU_strdup(run->val);
                 tmp[i++] = key_val_str;
@@ -357,19 +353,19 @@
         }
         if (run == NULL) {
-            tmp[i++] = "-1 msg=key_";
-            tmp[i++] = key;
-            tmp[i++] = "_not_found value=unknown";
+            tmp[i++] = HYDU_strdup("-1 msg=key_");
+            tmp[i++] = HYDU_strdup(key);
+            tmp[i++] = HYDU_strdup("_not_found value=unknown");
         }
     }
-    tmp[i++] = "\n";
-    tmp[i++] = NULL;
-
-    status = HYDU_str_alloc_and_join(tmp, &cmd);
-    HYDU_ERR_POP(status, "unable to join strings\n");
-
-    status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
-    HYDU_ERR_POP(status, "error writing PMI line\n");
-    HYDU_FREE(cmd);
-    HYDU_FREE(key_val_str);
+    tmp[i++] = HYDU_strdup("\n");
+    tmp[i++] = NULL;
+
+    status = HYDU_str_alloc_and_join(tmp, &cmd);
+    HYDU_ERR_POP(status, "unable to join strings\n");
+    HYDU_free_strlist(tmp);
+
+    status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
+    HYDU_ERR_POP(status, "error writing PMI line\n");
+    HYDU_FREE(cmd);
 
   fn_exit:
@@ -384,5 +380,5 @@
 HYD_Status HYD_PMCD_pmi_handle_v1_finalize(int fd, char *args[])
 {
-    char *cmd;
+    const char *cmd;
     HYD_Status status = HYD_SUCCESS;
 
@@ -420,21 +416,22 @@
 
     i = 0;
-    tmp[i++] = "cmd=universe_size size=";
+    tmp[i++] = HYDU_strdup("cmd=universe_size size=");
     tmp[i++] = HYDU_int_to_str(usize);
-    tmp[i++] = "\n";
-    tmp[i++] = NULL;
-
-    status = HYDU_str_alloc_and_join(tmp, &cmd);
-    HYDU_ERR_POP(status, "unable to join strings\n");
-
-    status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
-    HYDU_ERR_POP(status, "error writing PMI line\n");
-    HYDU_FREE(cmd);
-
-  fn_exit:
-    HYDU_FUNC_EXIT();
-    return status;
-
-  fn_fail:
-    goto fn_exit;
-}
+    tmp[i++] = HYDU_strdup("\n");
+    tmp[i++] = NULL;
+
+    status = HYDU_str_alloc_and_join(tmp, &cmd);
+    HYDU_ERR_POP(status, "unable to join strings\n");
+    HYDU_free_strlist(tmp);
+
+    status = HYDU_sock_writeline(fd, cmd, strlen(cmd));
+    HYDU_ERR_POP(status, "error writing PMI line\n");
+    HYDU_FREE(cmd);
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v2.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v2.c (revision 4719)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_v2.c (revision 4887)
@@ -56,6 +56,7 @@
         for (i = 0; areq->req[i]; i++) {
             dprintf("%s", areq->req[i]);
-            if (areq->req[i + 1])
+            if (areq->req[i + 1]) {
                 dprintf(",");
+            }
         }
         dprintf(") ");
@@ -197,5 +198,5 @@
 
 
-static char *find_token_keyval(struct token *tokens, int count, char *key)
+static char *find_token_keyval(struct token *tokens, int count, const char *key)
 {
     int i;
@@ -395,5 +396,5 @@
     HYD_PMCD_pmi_process_t *process;
     HYD_PMCD_pmi_kvs_pair_t *run;
-    char *key, *wait, *thrid;
+    char *key, *waitval, *thrid;
     char *tmp[HYD_NUM_TMP_STRINGS] = { 0 }, *cmd;
     struct token *tokens;
@@ -409,5 +410,5 @@
     HYDU_ERR_CHKANDJUMP(status, key == NULL, HYD_INTERNAL_ERROR, "unable to find key token\n");
 
-    wait = find_token_keyval(tokens, token_count, "wait");
+    waitval = find_token_keyval(tokens, token_count, "wait");
     thrid = find_token_keyval(tokens, token_count, "thrid");
 
@@ -431,5 +432,5 @@
             goto fn_exit;
 
-        if (wait && !strcmp(wait, "TRUE")) {
+        if (waitval && !strcmp(waitval, "TRUE")) {
             /* queue up */
             status = queue_outstanding_req(fd, GET_NODE_ATTR, args);
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_common.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_common.c (revision 4835)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_handle_common.c (revision 4887)
@@ -14,5 +14,5 @@
 {
     int pmi_version, pmi_subversion;
-    char *tmp;
+    const char *tmp;
     HYD_Status status = HYD_SUCCESS;
 
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c (revision 4836)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c (revision 4887)
@@ -200,5 +200,5 @@
     int inherited_env_count, user_env_count, system_env_count;
     int segment_count, exec_count, total_args;
-    static proxy_count = 0;
+    static int proxy_count = 0;
     HYD_Env_t *env;
     struct HYD_Partition *partition;
Index: /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_cb.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_cb.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_cb.c (revision 4887)
@@ -75,5 +75,4 @@
         buflen -= linelen;
         bufptr += linelen;
-        
 
         /* Unexpected termination of connection */
@@ -315,14 +314,14 @@
 
 
-void HYD_PMCD_pmi_serv_signal_cb(int signal)
-{
-    HYDU_FUNC_ENTER();
-
-    if (signal == SIGINT || signal == SIGQUIT || signal == SIGTERM
+void HYD_PMCD_pmi_serv_signal_cb(int sig)
+{
+    HYDU_FUNC_ENTER();
+
+    if (sig == SIGINT || sig == SIGQUIT || sig == SIGTERM
 #if defined SIGSTOP
-        || signal == SIGSTOP
+        || sig == SIGSTOP
 #endif /* SIGSTOP */
 #if defined SIGCONT
-        || signal == SIGCONT
+        || sig == SIGCONT
 #endif /* SIGSTOP */
 ) {
Index: /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h (revision 4569)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h (revision 4887)
@@ -10,5 +10,5 @@
 #include "hydra_base.h"
 
-HYD_Status HYD_BSCD_fork_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_fork_launch_procs(char **global_args, const char *partition_id_str,
                                       struct HYD_Partition *partition_list);
 
Index: /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c (revision 4887)
@@ -10,5 +10,5 @@
 #include "fork.h"
 
-HYD_Status HYD_BSCD_fork_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_fork_launch_procs(char **global_args, const char *partition_id_str,
                                       struct HYD_Partition *partition_list)
 {
Index: /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm.h (revision 4569)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm.h (revision 4887)
@@ -10,5 +10,5 @@
 #include "hydra_base.h"
 
-HYD_Status HYD_BSCD_slurm_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_slurm_launch_procs(char **global_args, const char *partition_id_str,
                                        struct HYD_Partition *partition_list);
 HYD_Status HYD_BSCD_slurm_query_partition_id(int *partition_id);
Index: /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm_launch.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/slurm/slurm_launch.c (revision 4887)
@@ -10,5 +10,5 @@
 #include "slurm.h"
 
-HYD_Status HYD_BSCD_slurm_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_slurm_launch_procs(char **global_args, const char *partition_id_str,
                                        struct HYD_Partition *partition_list)
 {
@@ -35,10 +35,12 @@
 
         if (test_path) {
-            tmp[0] = test_path;
-            tmp[1] = "srun";
+            tmp[0] = HYDU_strdup(test_path);
+            tmp[1] = HYDU_strdup("srun");
             tmp[2] = NULL;
 
             status = HYDU_str_alloc_and_join(tmp, &path);
             HYDU_ERR_POP(status, "error joining strings\n");
+
+            HYDU_free_strlist(tmp);
         }
         else
@@ -53,7 +55,7 @@
     num_nodes = 0;
     FORALL_ACTIVE_PARTITIONS(partition, partition_list) {
-        tmp[i++] = partition->base->name;
+        tmp[i++] = HYDU_strdup(partition->base->name);
         if (partition->next && partition->next->base->active)
-            tmp[i++] = ",";
+            tmp[i++] = HYDU_strdup(",");
         num_nodes++;
     }
@@ -61,4 +63,6 @@
     status = HYDU_str_alloc_and_join(tmp, &client_arg[arg]);
     HYDU_ERR_POP(status, "error joining strings\n");
+
+    HYDU_free_strlist(tmp);
 
     arg++;
Index: /mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in (revision 4614)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in (revision 4887)
@@ -15,5 +15,5 @@
 
 struct HYD_BSCI_fns {
-    HYD_Status(*launch_procs) (char **global_args, char *partition_id_str,
+    HYD_Status(*launch_procs) (char **global_args, const char *partition_id_str,
                                struct HYD_Partition *partition_list);
     HYD_Status(*finalize) (void);
@@ -27,5 +27,5 @@
 
 HYD_Status HYD_BSCI_init(char *bootstrap, char *bootstrap_exec, int enablex, int debug);
-HYD_Status HYD_BSCI_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCI_launch_procs(char **global_args, const char *partition_id_str,
                                  struct HYD_Partition *partition_list);
 HYD_Status HYD_BSCI_finalize(void);
Index: /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in (revision 4614)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in (revision 4887)
@@ -10,5 +10,5 @@
 
 struct HYD_BSCI_fns HYD_BSCI_fns = { 0 };
-char *HYD_BSCI_comp_array[] = { @hydra_bss_name_array@ };
+const char *HYD_BSCI_comp_array[] = { @hydra_bss_name_array@ };
 HYD_Status(*HYD_BSCI_comp_init[])(void) = { @hydra_bss_init_array@ };
 struct HYD_BSCI_info HYD_BSCI_info = { 0 };
Index: /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c (revision 4887)
@@ -8,5 +8,5 @@
 #include "bsci.h"
 
-HYD_Status HYD_BSCI_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCI_launch_procs(char **global_args, const char *partition_id_str,
                                  struct HYD_Partition *partition_list)
 {
Index: /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh.h (revision 4569)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh.h (revision 4887)
@@ -10,5 +10,5 @@
 #include "hydra_base.h"
 
-HYD_Status HYD_BSCD_rsh_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_rsh_launch_procs(char **global_args, const char *partition_id_str,
                                      struct HYD_Partition *partition_list);
 
Index: /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh_launch.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/rsh/rsh_launch.c (revision 4887)
@@ -16,5 +16,5 @@
  * environment and execvp's this executable.
  */
-HYD_Status HYD_BSCD_rsh_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_rsh_launch_procs(char **global_args, const char *partition_id_str,
                                      struct HYD_Partition *partition_list)
 {
@@ -41,10 +41,12 @@
 
         if (test_path) {
-            tmp[0] = test_path;
-            tmp[1] = "rsh";
+            tmp[0] = HYDU_strdup(test_path);
+            tmp[1] = HYDU_strdup("rsh");
             tmp[2] = NULL;
 
             status = HYDU_str_alloc_and_join(tmp, &path);
             HYDU_ERR_POP(status, "error joining strings\n");
+
+            HYDU_free_strlist(tmp);
         }
         else
Index: /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h (revision 4569)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h (revision 4887)
@@ -10,5 +10,5 @@
 #include "hydra_base.h"
 
-HYD_Status HYD_BSCD_ssh_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_ssh_launch_procs(char **global_args, const char *partition_id_str,
                                      struct HYD_Partition *partition_list);
 
Index: /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c
===================================================================
--- /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c (revision 4601)
+++ /mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c (revision 4887)
@@ -16,5 +16,5 @@
  * environment and execvp's this executable.
  */
-HYD_Status HYD_BSCD_ssh_launch_procs(char **global_args, char *partition_id_str,
+HYD_Status HYD_BSCD_ssh_launch_procs(char **global_args, const char *partition_id_str,
                                      struct HYD_Partition *partition_list)
 {
@@ -41,10 +41,12 @@
 
         if (test_path) {
-            tmp[0] = test_path;
-            tmp[1] = "ssh";
+            tmp[0] = HYDU_strdup(test_path);
+            tmp[1] = HYDU_strdup("ssh");
             tmp[2] = NULL;
 
             status = HYDU_str_alloc_and_join(tmp, &path);
             HYDU_ERR_POP(status, "error joining strings\n");
+
+            HYDU_free_strlist(tmp);
         }
         else
