diff --git a/addon/edit/matchbrackets.js b/addon/edit/matchbrackets.js
index 7d1a43c1b4b443848097c04e4f873c4158323a60..43473c1b1294036668f9e63fe419cfef68eb72ca 100644
--- a/addon/edit/matchbrackets.js
+++ b/addon/edit/matchbrackets.js
@@ -18,25 +18,16 @@
 
   function findMatchingBracket(cm, where, strict, config) {
     var line = cm.getLineHandle(where.line), pos = where.ch - 1;
-    var match;
-    var afterCursor;
-    if (!config || config.afterCursor === undefined) {
-      var paddedClassName = ' ' + cm.getWrapperElement().className + ' ';
-      afterCursor = (paddedClassName.indexOf(' cm-fat-cursor ') > -1);
-    } else {
-      afterCursor = config.afterCursor;
-    }
+    var afterCursor = config && config.afterCursor
+    if (afterCursor == null)
+      afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)
 
     // A cursor is defined as between two characters, but in in vim command mode
     // (i.e. not insert mode), the cursor is visually represented as a
     // highlighted box on top of the 2nd character. Otherwise, we allow matches
     // from before or after the cursor.
-    if (afterCursor) {
-      match = matching[line.text.charAt(++pos)];
-    } else {
-      match = (pos >= 0 && matching[line.text.charAt(pos)]) ||
-              matching[line.text.charAt(++pos)];
-    }
+    var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
+        matching[line.text.charAt(++pos)];
     if (!match) return null;
     var dir = match.charAt(1) == ">" ? 1 : -1;
     if (strict && (dir > 0) != (pos == where.ch)) return null;