--- drush_make.project.inc       2011-03-14 02:57:30.000000000 +0000
+++ drush_make.project.inc  2011-05-10 23:27:54.000000000 +0100
@@ -71,21 +71,23 @@
         $info = array('url' => $info);
       }
       // Download the patch.
-      if ($filename = _drush_make_download_file($info)) {
+      if (preg_match('@^(file://)(.+)@', $info['url'],$matches)){
+          $filename = $matches[2];
+          $patched = drush_shell_exec("patch -p0 -d %s < %s", $project_directory, $filename);
+      } elseif($filename = _drush_make_download_file($info)) {
         $patched = drush_shell_exec("patch -p0 -d %s < %s", $project_directory, $filename);
-        if ($patched) {
-          if (!$ignore_checksums && !_drush_make_verify_checksums($info, $filename)) {
-             return FALSE;
-          }
-          $patches_txt .= '- ' . $info['url'] . "\n";
+      } else {
+        drush_make_error('Unable to download ' . $info['url'] . '.');
+        return FALSE;
+      }
+      if ($patched) {
+        if (!$ignore_checksums && !_drush_make_verify_checksums($info, $filename)) {
+           return FALSE;
         }
+        $patches_txt .= '- ' . $info['url'] . "\n";
         drush_log($this->name . ' patched with ' . basename($filename) . '.', $patched ? 'ok' : 'error');
         drush_op('unlink', $filename);
       }
-      else {
-        drush_make_error('Unable to download ' . $info['url'] . '.');
-        return FALSE;
-      }
     }
     if (!empty($patches_txt) && !drush_get_option('no-patch-txt') && !file_exists($project_directory . '/PATCHES.txt')) {
       $patches_txt = "The following patches have been applied to this project:\n" .
