diff --git a/drupalorg_drush.drush.inc b/drupalorg_drush.drush.inc
index 1f31a89..8b0f0ce 100644
--- a/drupalorg_drush.drush.inc
+++ b/drupalorg_drush.drush.inc
@@ -162,6 +162,7 @@ function drupalorg_drush_make_validate_info($info) {
         'DrushMakeDo_ProjectWhitelist',
         'DrushMakeDo_DownloadWhitelist',
         'DrushMakeDo_DownloadRevision',
+        'DrushMakeDo_DownloadURL',
         'DrushMakeDo_ProjectPatch',
         'DrushMakeDo_ProjectUpdateXML',
       ),
@@ -334,7 +335,7 @@ class DrushMakeDo_ProjectWhitelist extends DrushMakeDo_Whitelist {
  */
 class DrushMakeDo_DownloadWhitelist extends DrushMakeDo_Whitelist {
   // The list of currently allowed project-download-level attributes.
-  protected $attribute_whitelist = array('revision', 'branch', 'tag', 'type');
+  protected $attribute_whitelist = array('revision', 'branch', 'tag', 'type', 'url');
 
   /**
    * Need special handling for the type attribute (it can be set, but
@@ -381,6 +382,25 @@ class DrushMakeDo_DownloadRevision extends DrushMakeDo_Transformer {
   }
 }
 
+/**
+ * Verify that download level attribute 'url' is used properly.
+ *
+ * At this point, we only allow 'url' if it's pointing to git.d.o.
+ */
+class DrushMakeDo_DownloadURL extends DrushMakeDo_Transformer {
+
+  function verify(&$makefile, $name = NULL) {
+    $pass = TRUE;
+    if (isset($makefile['download']) && isset($makefile['download']['url'])) {
+      if (!preg_match('@^(http|https|git)://git.drupal.org/.+$@', $makefile['download']['url'])) {
+        $pass = FALSE;
+        $this->log(dt("The download-level attribute 'url' can only be used if it is pointing to git.drupal.org. The URL for project '%project' is invalid (%url). ", array('%project' => $name, '%url' => $makefile['download']['url'])));
+      }
+    }
+    return $pass;
+  }
+}
+
 class DrushMakeDo_LibraryWhitelist extends DrushMakeDo_Transformer {
   protected $whitelist = NULL;
 
