diff --git a/lib/delegate.js b/lib/delegate.js
index <HASH>..<HASH> 100644
--- a/lib/delegate.js
+++ b/lib/delegate.js
@@ -387,8 +387,8 @@ Delegate.prototype.fire = function(event, target, listener) {
 Delegate.prototype.matches = (function(el) {
   if (!el) return;
   var p = el.prototype;
-  return (p.matchesSelector || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector);
-}(HTMLElement));
+  return (p.matches || p.matchesSelector || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector);
+}(Element));
 
 /**
  * Check whether an element
Changed from using HTMLElement to Element for matches

Because

a) ie8 doesn't support HTMLElement

b) matches is defined on Element.prototype not on HTMLElelment.prototype



Also added p.matches as the preferred native method to use