diff --git a/.gitignore b/.gitignore
index 4f4773f..b74decb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-config.php
+/config.php
diff --git a/lib/datalib.php b/lib/datalib.php
index 7c78540..6801f0c 100644
--- a/lib/datalib.php
+++ b/lib/datalib.php
@@ -1098,6 +1098,8 @@ function get_courses_search($searchterms, $sort='fullname ASC', $page=0, $record
 
     $fullnamesearch = '';
     $summarysearch = '';
+    $courseidsearch = '';
+    $shortnamesearch = '';
 
     foreach ($searchterms as $searchterm) {
 
@@ -1119,18 +1121,30 @@ function get_courses_search($searchterms, $sort='fullname ASC', $page=0, $record
         if ($summarysearch) {
             $summarysearch .= ' AND ';
         }
+        if ($courseidsearch) {
+            $courseidsearch .= ' AND ';
+        }
+        if ($shortnamesearch) {
+            $shortnamesearch .= ' AND ';
+        }
 
         if (substr($searchterm,0,1) == '+') {
             $searchterm      = substr($searchterm,1);
             $summarysearch  .= " c.summary $REGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
             $fullnamesearch .= " c.fullname $REGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
+            $courseidsearch  .= " c.idnumber $REGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
+            $shortnamesearch  .= " c.shortname $REGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
         } else if (substr($searchterm,0,1) == "-") {
             $searchterm      = substr($searchterm,1);
             $summarysearch  .= " c.summary $NOTREGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
             $fullnamesearch .= " c.fullname $NOTREGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
+            $courseidsearch .= " c.idnumber $NOTREGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
+            $shortnamesearch .= " c.shortname $NOTREGEXP '(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)' ";
         } else {
             $summarysearch .= ' summary '. $NOT . $LIKE .' \'%'. $searchterm .'%\' ';
             $fullnamesearch .= ' fullname '. $NOT . $LIKE .' \'%'. $searchterm .'%\' ';
+            $courseidsearch .= ' idnumber '. $NOT . $LIKE .' \'%'. $searchterm .'%\' ';
+            $shortnamesearch .= ' shortname '. $NOT . $LIKE .' \'%'. $searchterm .'%\' ';
         }
 
     }
@@ -1141,7 +1155,7 @@ function get_courses_search($searchterms, $sort='fullname ASC', $page=0, $record
             FROM {$CFG->prefix}course c
             JOIN {$CFG->prefix}context ctx
              ON (c.id = ctx.instanceid AND ctx.contextlevel=".CONTEXT_COURSE.")
-            WHERE (( $fullnamesearch ) OR ( $summarysearch ))
+            WHERE (( $fullnamesearch ) OR ( $summarysearch ) OR ( $courseidsearch ) OR ( $shortnamesearch ))
                   AND category > 0
             ORDER BY " . $sort;
 

