diff --git a/drush_make.project.inc b/drush_make.project.inc
index d0f2a48..11de767 100644
--- a/drush_make.project.inc
+++ b/drush_make.project.inc
@@ -72,7 +72,18 @@ class DrushMakeProject {
       }
       // Download the patch.
       if ($filename = _drush_make_download_file($info)) {
-        $patched = drush_shell_exec("patch -p0 -d %s < %s", $project_directory, $filename);
+        // If this is a git clone, attempt git apply.
+        if ($this->download['type'] == 'git') {
+          $patched = drush_shell_exec("cd %s; git apply %s;", $this->download_location, $filename);
+          if (!$patched || $output = drush_shell_exec_output()) {
+            drush_log(dt('Failed to apply the patch with git.'), 'warning');
+            drush_log(implode("\n", $output));
+          }
+        }
+        // If the git apply failed, attempt with patch.
+        if (empty($patched)) {
+          $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;
