diff --git a/includes/command.inc b/includes/command.inc
index 4e494a2..db07a78 100644
--- a/includes/command.inc
+++ b/includes/command.inc
@@ -493,6 +493,10 @@ function _drush_find_commandfiles($phase) {
   static $evaluated = array();
   static $deferred = array();
 
+  if ($drupal_load_path = drush_get_option(array('D', 'drupal-load-path'), FALSE)) {
+    $drupal_load_path = explode(":", $drupal_load_path);
+  }
+
   $searchpath = array();
   switch ($phase) {
     case DRUSH_BOOTSTRAP_DRUSH:
@@ -524,6 +528,14 @@ function _drush_find_commandfiles($phase) {
       $searchpath[] = "profiles/default/modules";
       // Add all module paths, even disabled modules. Prefer speed over accuracy.
       $searchpath[] = 'sites/all/modules';
+      // copy-pasted below
+      if ($drupal_load_path) {
+        foreach ($searchpath as $key => $path) {
+          if (strpos($path, $drupal_load_path) !== 0) {
+            unset($searchpath[$key]);
+          }
+        }
+      }
       break;
     case DRUSH_BOOTSTRAP_DRUPAL_FULL:
       // Add enabled module paths. Since we are bootstrapped,
@@ -532,6 +544,14 @@ function _drush_find_commandfiles($phase) {
         $filename = drupal_get_filename('module', $module);
         $searchpath[] = dirname($filename);
       }
+      // copy-paste from the above
+      if ($drupal_load_path) {
+        foreach ($searchpath as $key => $path) {
+          if (strpos($path, $drupal_load_path) !== 0) {
+            unset($searchpath[$key]);
+          }
+        }
+      }
       break;
   }
 
