diff --git a/commands/make/make.download.inc b/commands/make/make.download.inc
index 4785e1e..0f30a17 100644
--- a/commands/make/make.download.inc
+++ b/commands/make/make.download.inc
@@ -10,6 +10,27 @@ function make_download_factory($name, $download, $download_location) {
   }
 }
 
+/**
+ * Download project using drush's pm-download command.
+ */
+function make_download_pm($name, $download, $download_location) {
+  $options = array(
+    'destination' => dirname($download_location),
+  );
+
+  if (!drush_get_option('no-cache', FALSE)) {
+    $options['cache'] = NULL;
+  }
+
+  $version = $name . '-' . $download['release']['version'];
+
+  // Avoid any prompts from CLI.
+  drush_set_context('DRUSH_AFFIRMATIVE', TRUE);
+
+  // Perform actual download with `drush pm-download`.
+  drush_invoke_process('@none', 'pm-download', array($version), $options);
+}
+
 function make_download_cvs($name, $download, $download_location) {
   if (!empty($download['module'])) {
     if (drush_get_option('working-copy')) {
diff --git a/commands/make/make.drush.inc b/commands/make/make.drush.inc
index 497395f..430bb7c 100644
--- a/commands/make/make.drush.inc
+++ b/commands/make/make.drush.inc
@@ -32,6 +32,7 @@ function make_drush_command() {
       'ignore-checksums' => 'Ignore md5 checksums for downloads.',
       'md5' => 'Output an md5 hash of the current build after completion. Use --md5=print to print to stdout.',
       'make-update-default-url' => 'The default location to load the XML update information from.',
+      'no-cache' => 'Do not use the pm-download caching (defaults to using this).',
       'no-clean' => 'Leave temporary build directories in place instead of cleaning up after completion.',
       'no-core' => 'Do not require a Drupal core project to be specified.',
       'no-patch-txt' => 'Do not write a PATCHES.txt file in the directory of each patched project.',
@@ -233,9 +234,8 @@ function make_projects($recursion, $contrib_destination, $info, $build_path) {
         $project['type'] = $request['project_type'];
         if (!isset($project['download'])) {
           $project['download'] = array(
-            'type' => 'get',
-            'url'  => $release['download_link'],
-            'md5'  => $release['mdhash'],
+            'type' => 'pm',
+            'release' => $release,
           );
         }
       }
