rem: if (aListener) aListener.onOperationComplete (Components.results.NS_OK, aId, aListener.GET, this.mItems[aId]); 
add: var item = this.mItems[aId]; var iid = null;  if (item.QueryInterface(Components.interfaces.calIEvent)) { iid = Components.interfaces.calIEvent; } else if (item.QueryInterface(Components.interfaces.calITodo)) { iid = Components.interfaces.calITodo; } else { aListener.onGetComplete(Components.results.NS_ERROR_FAILURE, null, "Can't deduce item type based on QI", 0, []); return; }  aListener.onGetComplete(Components.results.NS_OK, iid, null, 1, [item]); 
context:     getItem: function (aId, aListener) {        if (aId == null ||            this.mItems[aId] == null)        {            if (aListener)                aListener.onOperationComplete (Components.results.NS_ERROR_FAILURE,                                               aId,                                               aListener.GET,                                               "ID doesn't exist for getItem");            return;        }        if (aListener)            aListener.onOperationComplete (Components.results.NS_OK,                                           aId,                                           aListener.GET,                                           this.mItems[aId]);    },
meta: 5459	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5459/3ed5153e77d21e9a1d4b8c6e12e1eb27561e61fc/calMemoryCalendar.js/buggy/calendar/providers/memory/calMemoryCalendar.js