diff --git a/shurly.install b/shurly.install
index 08d9f4f..56473a8 100644
--- a/shurly.install
+++ b/shurly.install
@@ -27,6 +27,7 @@ function shurly_schema() {
         'description' => t('source path'),
         'type' => 'varchar',
         'length' => '255',
+        'binary' => TRUE,
         'not null' => TRUE,
       ),
       'destination' => array(
@@ -135,6 +136,21 @@ function shurly_update_6100() {
   return $ret;
 }
 
+function shurly_update_6101() {
+  $ret = array();
+  db_drop_index($ret, 'shurly'); 
+  db_change_field($ret, 'shurly', 'source', 'source', array(
+    'description' => t('source path'),
+    'type' => 'varchar',
+    'length' => '255',
+    'not null' => TRUE,
+    'binary' => TRUE),
+  array('indexes' => array('source'))
+  );
+
+  return $ret;
+}
+
 /**
  * Implement hook_uninstall().
  */
diff --git a/shurly.module b/shurly.module
index 353c427..85cd576 100644
--- a/shurly.module
+++ b/shurly.module
@@ -98,7 +98,7 @@ function shurly_boot() {
   // if the path has any slashes in it, it's not a short URL
   // so we can bail out and save ourselves a database call
   if (isset($_GET['q']) && strpos($_GET['q'], '/') === FALSE) {
-    $row = db_fetch_object(db_query("SELECT rid, destination FROM {shurly} WHERE BINARY source = '%s' AND active = 1", $_GET['q']));
+    $row = db_fetch_object(db_query("SELECT rid, destination FROM {shurly} WHERE source = '%s' AND active = 1", $_GET['q']));
     if ($row) {
       shurly_goto($row);
     }
@@ -820,8 +820,7 @@ function shurly_url_exists($short, $long = NULL) {
  *  NOTE: Always check $redirect->active before using the result
  */
 function shurly_get_redirect($short_url, $check_active = FALSE) {
-  // we add 'BINARY' to ensure that we're doing a CASE SENSITIVE query
-  $query = "SELECT * FROM {shurly} WHERE BINARY source = '%s'";
+  $query = "SELECT * FROM {shurly} WHERE source = '%s'";
   if ($check_active) {
     $query .= ' AND active = 1';
   }
