diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6
index 7ad63c5a936..45fb9bb0bac 100644
--- a/app/assets/javascripts/discourse/models/category.js.es6
+++ b/app/assets/javascripts/discourse/models/category.js.es6
@@ -302,17 +302,17 @@ Category.reopenClass({
     const categories = Category.listByActivity();
     const length = categories.length;
     var i;
-    var count = 0;
     var data = [];
+    term = term.toLowerCase();
 
     const done = () => {
       return data.length === limit;
-    }
+    };
 
     for (i = 0; i < length && !done(); i++) {
       const category = categories[i];
       if ((emptyTerm) ||
-          (!emptyTerm && category.get('name').indexOf(term) === 0)) {
+          (!emptyTerm && category.get('name').toLowerCase().indexOf(term) === 0)) {
         data.push(category);
       }
     }
@@ -321,7 +321,7 @@ Category.reopenClass({
       for (i = 0; i < length && !done(); i++) {
         const category = categories[i];
 
-        if ((!emptyTerm && category.get('name').indexOf(term) > 0)) {
+        if ((!emptyTerm && category.get('name').toLowerCase().indexOf(term) > 0)) {
           if (data.indexOf(category) === -1) data.push(category);
         }
       }
diff --git a/test/javascripts/models/category-test.js.es6 b/test/javascripts/models/category-test.js.es6
index 68e56da40d8..dc179e7e2f6 100644
--- a/test/javascripts/models/category-test.js.es6
+++ b/test/javascripts/models/category-test.js.es6
@@ -141,6 +141,9 @@ test('search', () => {
   deepEqual(result(''), [category1.get('id'), category2.get('id')], "orders by activity if no term is matched");
   deepEqual(result('term'), [category1.get('id'), category2.get('id')], "orders by activity");
 
+  category2.set('name', 'TeRm start');
+  deepEqual(result('tErM'), [category2.get('id'), category1.get('id')], "ignores case of category name and search term");
+
   category2.set('name', 'term start');
   deepEqual(result('term'), [category2.get('id'), category1.get('id')], "orders matching begin with and then contains");