diff --git a/includes/query.inc b/includes/query.inc
index add7976..bba27fc 100644
--- a/includes/query.inc
+++ b/includes/query.inc
@@ -468,7 +468,7 @@ class SearchApiQuery implements SearchApiQueryInterface {
             continue;
           }
           if ($quoted) {
-            if ($v[drupal_strlen($v)-1] == '"') {
+            if (substr($v, -1) == '"') {
               $v = substr($v, 0, -1);
               $str .= ' ' . $v;
               $ret[$k] = $str;
@@ -480,7 +480,7 @@ class SearchApiQuery implements SearchApiQueryInterface {
             }
           }
           elseif ($v[0] == '"') {
-            $len = drupal_strlen($v);
+            $len = strlen($v);
             if ($len > 1 && $v[$len-1] == '"') {
               $ret[$k] = substr($v, 1, -1);
             }
diff --git a/search_api.test b/search_api.test
index c6f1c68..c3cfbc1 100644
--- a/search_api.test
+++ b/search_api.test
@@ -470,6 +470,9 @@ class SearchApiUnitTest extends DrupalWebTestCase {
     $this->assertEqual($query->getKeys(), array('#conjunction' => 'AND', 'foo', 'bar'), t('"@mode" parse mode, test !num.', array('@mode' => $modes[$mode]['name'], '!num' => $num++)));
     $query->keys('(foo bar) OR "bar baz"');
     $this->assertEqual($query->getKeys(), array('(foo', 'bar)', 'OR', 'bar baz', '#conjunction' => 'AND'), t('"@mode" parse mode, test !num.', array('@mode' => $modes[$mode]['name'], '!num' => $num++)));
+    // http://drupal.org/node/1468678
+    $query->keys('"Münster"');
+    $this->assertEqual($query->getKeys(), array('#conjunction' => 'AND', 'Münster'), t('"@mode" parse mode, test !num.', array('@mode' => $modes[$mode]['name'], '!num' => $num++)));
   }
 
   public function checkIgnoreCaseProcessor() {
