diff --git a/drush_make.download.inc b/drush_make.download.inc
index 8199166..92630af 100644
--- a/drush_make.download.inc
+++ b/drush_make.download.inc
@@ -12,7 +12,7 @@ function drush_make_download_factory($name, $download, $download_location) {
 
 function drush_make_download_cvs($name, $download, $download_location) {
   if (!empty($download['module'])) {
-    if (drush_get_option('working-copy')) {
+    if ($download['working-copy']) {
       if ($download['module'] == 'drupal') {
         $download['root'] = ":pserver:anonymous:anonymous@drupalcode.org:/cvs/drupal";
       }
@@ -34,7 +34,7 @@ function drush_make_download_cvs($name, $download, $download_location) {
     $cd_to_directory = dirname($download_location);
     $destination_directory = basename($download_location);
 
-    $command = 'cvs -d%s ' . (drush_get_option('working-copy') ? 'checkout' : 'export') . ' -d%s';
+    $command = 'cvs -d%s ' . ($download['working-copy'] ? 'checkout' : 'export') . ' -d%s';
     $args = array($download['root'], $destination_directory);
     if (isset($download['revision'])) {
       $command .= ' -r %s';
@@ -339,7 +339,6 @@ function drush_make_download_post($name, $download, $download_location) {
 
 function drush_make_download_git($name, $download, $download_location) {
   $tmp_path = drush_make_tmp();
-  $wc = drush_get_option('working-copy');
 
   // check if branch option is set in info file, otherwise set default to master branch
   $download['branch'] = isset($download['branch']) ? $download['branch'] : 'master';
@@ -387,7 +386,7 @@ function drush_make_download_git($name, $download, $download_location) {
       case 'git':
         // github uses two different urls, working copy urls using scp format
         // git@domain:repo export url format are git://domain/repo
-        if ($wc) {
+        if ($download['working-copy']) {
           // working copy is set
           $url = 'git@'. $url_array['host'] .':'. $url_array['resource'];
           break;
@@ -479,7 +478,7 @@ function drush_make_download_git($name, $download, $download_location) {
     }
 
     // Remove .git/ directory if working-copy flag was not specified.
-    if (!$wc && file_exists($tmp_location . '/.git')) {
+    if (!$download['working-copy'] && file_exists($tmp_location . '/.git')) {
       drush_shell_exec("rm -rf %s", $tmp_location . '/.git');
     }
     drush_shell_exec('cp -Rf %s %s', $tmp_location, dirname($download_location));
@@ -500,7 +499,7 @@ function drush_make_download_bzr($name, $download, $download_location) {
   if (!empty($download['url'])) {
     $args = array();
     $command = 'bzr';
-    if (drush_get_option('working-copy')) {
+    if ($download['working-copy']) {
       $command .= ' branch  --use-existing-dir';
     }
     else {
@@ -511,7 +510,7 @@ function drush_make_download_bzr($name, $download, $download_location) {
       $args[] = $download['revision'];
     }
     $command .= ' %s %s';
-    if (drush_get_option('working-copy')) {
+    if ($download['working-copy']) {
       $args[] = $download['url'];
       $args[] = $tmp_location;
     }
@@ -548,7 +547,7 @@ function drush_make_download_svn($name, $download, $download_location) {
     if (!isset($download['force']) || $download['force']) {
       $options = ' --force';
     }
-    if (drush_get_option('working-copy')) {
+    if ($download['working-copy']) {
       $command = 'svn' . $options . ' checkout';
     }
     else {
diff --git a/drush_make.project.inc b/drush_make.project.inc
index 3359046..6695db9 100644
--- a/drush_make.project.inc
+++ b/drush_make.project.inc
@@ -12,6 +12,9 @@ class DrushMakeProject {
     foreach ($project as $key => $value) {
       $this->{$key} = $value;
     }
+    if (drush_get_option('working-copy')) {
+        $this->download['working-copy'] = TRUE;
+    }
   }
 
   /**
