--- orte/mca/odls/base/odls_base_default_fns.c	2011-02-14 11:06:46.000000000 -0500
+++ orte/mca/odls/base/odls_base_default_fns.c	2011-05-05 13:30:07.000000000 -0400
@@ -93,7 +93,7 @@
     opal_byte_object_t bo, *boptr;
     int32_t numbytes, *tmp32;
     int8_t flag;
-    int8_t *tmp;
+    uint16_t *tmp; 
     orte_vpid_t i;
     int j;
     orte_daemon_cmd_flag_t command;
@@ -394,7 +394,7 @@
     free(bo.bytes);
     
     /* transfer and pack the app_idx and restart arrays for this job */
-    tmp = (int8_t*)malloc(jdata->num_procs);
+    tmp = (uint16_t*)malloc(jdata->num_procs * sizeof(uint16_t));
     tmp32 = (int32_t*)malloc(jdata->num_procs * sizeof(int32_t));
     for (j=0, i=0; i < jdata->num_procs && j < jdata->procs->size; j++) {
         if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(jdata->procs, j))) {
@@ -403,7 +403,7 @@
         tmp[i] = proc->app_idx;
         tmp32[i++] = proc->restarts;
     }
-    if (ORTE_SUCCESS != (rc = opal_dss.pack(data, tmp, jdata->num_procs, OPAL_INT8))) {
+    if (ORTE_SUCCESS != (rc = opal_dss.pack(data, tmp, jdata->num_procs, OPAL_UINT16))) {
         ORTE_ERROR_LOG(rc);
         return rc;
     }
@@ -587,7 +587,7 @@
     opal_buffer_t alert;
     opal_list_item_t *item;
     int8_t flag;
-    int8_t *app_idx=NULL;
+    uint16_t *app_idx=NULL;
     int32_t *restarts=NULL;
     char **slot_str=NULL;
     orte_jobid_t debugger;
@@ -651,8 +651,8 @@
             }
         }
         /* fake an app_idx array */
-        app_idx = (int8_t*)malloc(jobdat->num_procs * sizeof(int8_t));
-        memset(app_idx, 0, jobdat->num_procs * sizeof(int8_t));
+        app_idx = (uint16_t*)malloc(jobdat->num_procs * sizeof(uint16_t));
+        memset(app_idx, 0, jobdat->num_procs * sizeof(uint16_t));
         /* if we are doing a timing test, store the time the msg was recvd */
         if (orte_timing) {
             jobdat->launch_msg_recvd.tv_sec = orte_daemon_msg_recvd.tv_sec;
@@ -860,10 +860,10 @@
     }
    
     /* allocate memory for app_idx */
-    app_idx = (int8_t*)malloc(jobdat->num_procs);
+    app_idx = (uint16_t*)malloc(jobdat->num_procs * sizeof(uint16_t));
     /* unpack app_idx in one shot */
     cnt=jobdat->num_procs;
-    if (ORTE_SUCCESS != (rc = opal_dss.unpack(data, app_idx, &cnt, OPAL_INT8))) {
+    if (ORTE_SUCCESS != (rc = opal_dss.unpack(data, app_idx, &cnt, OPAL_UINT16))) {
         ORTE_ERROR_LOG(rc);
         goto REPORT_ERROR;
     }
