diff --git a/addon/search/searchcursor.js b/addon/search/searchcursor.js
index 03db843cba64b6e73b5a7f70fd6fd0aa2090b2cd..eccd81aab69c107de8b7ed763f931def3aeb142c 100644
--- a/addon/search/searchcursor.js
+++ b/addon/search/searchcursor.js
@@ -133,7 +133,7 @@
       var mid = (min + max) >> 1
       var len = foldFunc(orig.slice(0, mid)).length
       if (len == pos) return mid
-      else if (len > pos) max = mid - 1
+      else if (len > pos) max = mid
       else min = mid + 1
     }
   }
diff --git a/test/search_test.js b/test/search_test.js
index a25090431e4d82f72a58b1c709ff8976706eb6d2..e3188de529882382f4c9f1bf33b404709506087a 100644
--- a/test/search_test.js
+++ b/test/search_test.js
@@ -77,8 +77,9 @@
 
   test("normalize", function() {
     if (!String.prototype.normalize) return
-    var doc = new CodeMirror.Doc("yılbaşı\n수 있을까")
+    var doc = new CodeMirror.Doc("yılbaşı\n수 있을까\nLe taux d'humidité à London")
     run(doc, "s", false, 0, 5, 0, 6)
     run(doc, "이", false, 1, 2, 1, 3)
+    run(doc, "a", false, 0, 4, 0, 5, 2, 4, 2, 5, 2, 19, 2, 20)
   })
 })();