ISB_TRANSFER
        OSB_TRANSFER
        CREAM_FAILURE_REASON
+       CREAM_ID
 /;
 
        if (ret) ret = enc_string(ret, stat->condor_reason);
        if (ret) ret = enc_string(ret, stat->condor_error_desc);
        if (ret) ret = enc_int(ret, stat->cream_state);
+       if (ret) ret = enc_string(ret, stat->cream_id);
        if (ret) ret = enc_string(ret, stat->cream_owner);
        if (ret) ret = enc_string(ret, stat->cream_endpoint);
        if (ret) ret = enc_string(ret, stat->cream_jdl);
        if (tmp_in != NULL) stat->condor_reason = dec_string(tmp_in, &tmp_in);
        if (tmp_in != NULL) stat->condor_error_desc = dec_string(tmp_in, &tmp_in);
        if (tmp_in != NULL) stat->cream_state = dec_int(tmp_in, &tmp_in);
+       if (tmp_in != NULL) stat->cream_id = dec_string(tmp_in, &tmp_in);
        if (tmp_in != NULL) stat->cream_owner = dec_string(tmp_in, &tmp_in);
        if (tmp_in != NULL) stat->cream_endpoint = dec_string(tmp_in, &tmp_in);
        if (tmp_in != NULL) stat->cream_jdl = dec_string(tmp_in, &tmp_in);
 
 
        chid = edg_wlc_JobIdUnparse(stat.jobId);
 
+       TR("CREAM ID", "%s", stat.cream_id);
        TR("Status", "%s", (lbstat = edg_wll_StatToString(stat.state)));
        free(lbstat);
        TR("CREAM Status", "%s", (creamstat = edg_wll_CreamStatToString(stat.cream_state)));
 
                        break;
                case EDG_WLL_EVENT_CREAMPURGE:
                        // no state transition
+                       break;
+               case EDG_WLL_EVENT_CREAMACCEPTED:
+                       if (USABLE(res)){
+                               free(js->pub.cream_id);
+                               js->pub.cream_id = strdup(e->CREAMAccepted.local_jobid);
+                       }
+                       break;
                case EDG_WLL_EVENT_CREAMSTORE:
                        if (USABLE(res)) {
                                switch (e->CREAMStore.command) {
                case EDG_WLL_EVENT_CREAMCALL:
                        if (e->any.source == EDG_WLL_SOURCE_CREAM_EXECUTOR &&
                                e->CREAMCall.callee == EDG_WLL_SOURCE_LRMS &&
-                               e->CREAMCall.command == EDG_WLL_CREAM_CMD_START &&
+                               e->CREAMCall.command == EDG_WLL_CREAMCALL_CMDSTART &&
                                e->CREAMCall.result == EDG_WLL_CREAMCALL_OK)
                        {
                                if (USABLE(res)) {
                                        // BLAH -> LRMS
                                                js->pub.state = EDG_WLL_JOB_SCHEDULED;
                                                js->pub.cream_state = EDG_WLL_STAT_IDLE;
-                                               if (e->CREAMStore.reason){
+                                               if (e->CREAMCall.reason){
                                                        free(js->pub.cream_reason);
                                                        js->pub.cream_reason = strdup(e->CREAMStore.reason);
                                                }
                                        rep(js->pub.cream_reason, e->CREAMCall.reason);
                                }
                        }
+                       if (e->CREAMCall.command == EDG_WLL_CREAMCALL_CMDCANCEL &&
+                                e->CREAMCall.result == EDG_WLL_CREAMCALL_OK)
+                       {
+                               if (USABLE(res)){
+                                       js->pub.cream_cancelling = 1;
+                               }
+                               if (e->CREAMCall.reason)
+                               {
+                                       free(js->pub.cream_reason);
+                                       js->pub.cream_reason = strdup(e->CREAMCall.reason);
+                               }
+                       }
                        break;
                case EDG_WLL_EVENT_CREAMCANCEL:
                        if (USABLE(res)) {
 
 
 @type CREAMPurge       Purge request (by user)
 
+@type CREAMAccepted          Accepting job (successful counterpart to Transfer).
+        string  local_jobid     New job id as assigned by the receiving component.
+        _optional_
+
+
 @type CREAMStore
        int     command         Command to store
        _code_  CMDSTART        Start registered job
 
        _code_  DONE-FAILED
        _code_  ABORTED
 
+string  cream_id
 string cream_owner
 string cream_endpoint
 string cream_jdl