rem: if (Prototype.BrowserFeatures.XPath && !(/\[[\w-]*?:/).test(this.expression)) 
add: if (Prototype.BrowserFeatures.XPath && !(/(\[[\w-]*?:|:checked)/).test(this.expression)) 
context:   compileMatcher: function() {    // Selectors with namespaced attributes can't use the XPath version    if (Prototype.BrowserFeatures.XPath && !(/\[[\w-]*?:/).test(this.expression))      return this.compileXPathMatcher();        var e = this.expression, ps = Selector.patterns, h = Selector.handlers,         c = Selector.criteria, le, p, m;    if (Selector._cache[e]) {      this.matcher = Selector._cache[e];       return;    }        this.matcher = ["this.matcher = function(root) {",                     "var r = root, h = Selector.handlers, c = false, n;"];    while (e && le != e && (/\S/).test(e)) {      le = e;      for (var i in ps) {        p = ps[i];        if (m = e.match(p)) {          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :    	      new Template(c[i]).evaluate(m));          e = e.replace(m[0], '');          break;        }      }    }        this.matcher.push("return h.unique(n);\n}");    eval(this.matcher.join('\n'));    Selector._cache[this.expression] = this.matcher;  },
meta: 3332	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3332/0dd4ba70f60fe814e7e335c04a44b1df21d8e6c2/selector.js/buggy/src/selector.js