av[i].size = -1;
                }
 */
+               int j;
                 i = 0; while (h->lastStatusHistory[i]) i++;
                 av = calloc(i+2, sizeof(glite_jp_attrval_t));
                 av[0].name = strdup(attr);
                 av[0].value = check_strdup(h->status.reason);
                 av[0].timestamp = h->status.stateEnterTime.tv_sec;
                 av[0].size = -1;
-               if (h->fullStatusHistory[0]) {
+               if ((h->fullStatusHistory[0] && 
+                    (h->fullStatusHistory[0]->state == EDG_WLL_JOB_SUBMITTED)) ) {
                        av[1].name = edg_wll_StatToString(h->fullStatusHistory[0]->state);
                        av[1].value = check_strdup(h->fullStatusHistory[0]->reason);
                        av[1].timestamp = h->fullStatusHistory[0]->timestamp.tv_sec;
                        av[1].size = -1;        
+                       j = 2;
+               } else {
+                       j = 1;
                }
                 i = 0;
                 while (h->lastStatusHistory[i]) {
-                        av[i+2].name = edg_wll_StatToString(h->lastStatusHistory[i]->state);
-                        av[i+2].value = check_strdup(h->lastStatusHistory[i]->reason);
-                        av[i+2].timestamp = h->lastStatusHistory[i]->timestamp.tv_sec;
-                        av[i+2].size = -1;
+                        av[j].name = edg_wll_StatToString(h->lastStatusHistory[i]->state);
+                        av[j].value = check_strdup(h->lastStatusHistory[i]->reason);
+                        av[j].timestamp = h->lastStatusHistory[i]->timestamp.tv_sec;
+                        av[j].size = -1;
                         i++;
+                       j++;
                 }
        } else if (strcmp(attr, GLITE_JP_LB_fullStatusHistory) == 0) {
                i = 0; while (h->fullStatusHistory[i]) i++;