diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 6881473..c4c8bea 100755
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -1102,7 +1102,14 @@ function drupal_load($type, $name) {
   $filename = drupal_get_filename($type, $name);
 
   if ($filename) {
-    include DRUPAL_ROOT . '/' . $filename;
+    // Special case system.module to avoid breaking drush.
+    // @see https://github.com/drush-ops/drush/pull/822
+    if ($name !== 'system') {
+      include DRUPAL_ROOT . '/' . $filename;
+    }
+    else {
+      include_once DRUPAL_ROOT . '/' . $filename;
+    }
     $files[$type][$name] = TRUE;
 
     return TRUE;
@@ -3136,7 +3143,14 @@ function _registry_check_code($type, $name = NULL) {
   $cache_key = $type[0] . $name;
   if (isset($lookup_cache[$cache_key])) {
     if ($lookup_cache[$cache_key]) {
-      require_once DRUPAL_ROOT . '/' . $lookup_cache[$cache_key];
+      $extension = pathinfo($lookup_cache[$cache_key], PATHINFO_EXTENSION);
+      if ($extension == 'module') {
+        $module_name = pathinfo($lookup_cache[$cache_key], PATHINFO_FILENAME);
+        drupal_load('module', $module_name);
+      }
+      else {
+        require_once DRUPAL_ROOT . '/' . $lookup_cache[$cache_key];
+      }
     }
     return (bool) $lookup_cache[$cache_key];
   }
