rem: var shellSvc = Components.classes["@mozilla.org/mail/shell-service;1"].getService(nsIShellService); 
add: var shellSvc; try { shellSvc = Components.classes["@mozilla.org/mail/shell-service;1"].getService(nsIShellService); } catch (ex) { return; }  
context:   checkDefaultNow: function (aAppType)   {       var nsIShellService = Components.interfaces.nsIShellService;    var shellSvc = Components.classes["@mozilla.org/mail/shell-service;1"].getService(nsIShellService);    // if we are already the default for all the types we handle, then alert the user.    if (shellSvc.isDefaultClient(false, nsIShellService.MAIL | nsIShellService.NEWS | nsIShellService.RSS))    {      var brandBundle = document.getElementById("bundleBrand");      var shellBundle = document.getElementById("bundleShell");      var brandShortName = brandBundle.getString("brandShortName");      var promptTitle = shellBundle.getString("alreadyDefaultClientTitle");      var promptMessage;      const IPS = Components.interfaces.nsIPromptService;      var psvc = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]                           .getService(IPS);        promptMessage = shellBundle.getFormattedString("alreadyDefault", [brandShortName]);        psvc.alert(window, promptTitle, promptMessage);    }    else    {      // otherwise, bring up the default client dialog      window.openDialog("chrome://messenger/content/defaultClientDialog.xul", "Default Client",                         "modal,centerscreen,chrome,resizable=no");    }  },
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/ec47273273dfb1600525b04871f914eefc16e296/general.js/buggy/mail/components/preferences/general.js