add:   ctxt.mHooks.onAfterPut(channel);  
context:     onStopRequest: function(request, ctxt, status, errorMsg)    {        ctxt = ctxt.wrappedJSObject;        var channel;        try {            channel = request.QueryInterface(Components.interfaces.nsIHttpChannel);            dump(channel.requestSucceeded+"\n");        } catch(e) {        }        if (channel && !channel.requestSucceeded) {            ctxt.mObserver.onError(channel.requestSucceeded,                                   "Publishing the calendar file failed\n" +                                       "Status code: "+channel.responseStatus+": "+channel.responseStatusText+"\n");        }        else if (!channel && !Components.isSuccessCode(request.status)) {            ctxt.mObserver.onError(request.status,                                   "Publishing the calendar file failed\n" +                                       "Status code: "+request.status.toString(16)+"\n");        }        ctxt.locked = false;        ctxt.processQueue();    },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/2cd5ad4e15f5a732d3db97d117d45263b4186d2b/calICSCalendar.js/buggy/calendar/providers/ics/calICSCalendar.js