diff --git a/commands/make/make.drush.inc b/commands/make/make.drush.inc
index 3797816..3a94656 100644
--- a/commands/make/make.drush.inc
+++ b/commands/make/make.drush.inc
@@ -82,6 +82,17 @@ function make_drush_command() {
     'aliases' => array('generate-makefile'),
   );
 
+  // Generate a single patches file for a given make file.
+  $items['make-patches'] = array(
+    'bootstrap' => DRUSH_BOOTSTRAP_DRUSH,
+    'description' => 'Generate a PATCHES.txt file for all patches in a given make file',
+    'arguments' => array(
+      'makefile' => 'Filename of the makefile to use.',
+      'destination' => 'The path at which to place the PATCHES.txt file. Defaults to the current directory.',
+    ),
+    'options' => array(),
+  );
+
   // Hidden command to build a single project.
   $items['make-process'] = array(
     'hidden' => TRUE,
diff --git a/commands/make/patches.make.inc b/commands/make/patches.make.inc
new file mode 100644
index 0000000..9a1aa82
--- /dev/null
+++ b/commands/make/patches.make.inc
@@ -0,0 +1,39 @@
+<?php
+/**
+ * @file
+ * Functions for make-patches command.
+ */
+
+/**
+ * Drush command callback for make-patches command.
+ */
+function drush_make_patches($makefile, $destination = '.') {
+  $info = make_parse_info_file($makefile);
+  xdebug_break();
+  $patches = _make_get_patches($info);
+  if (!empty($patches)) {
+    $patches_txt = "The following patches have been applied to this project:\n\n";
+    $patches_txt .= implode("\n", $patches);
+    file_put_contents($destination . '/PATCHES.txt', $patches_txt);
+  }
+  else {
+    drush_log(dt('No patches fount in @makefile', array('@makefile' => $makefile)), 'ok');
+  }
+}
+
+/**
+ * Find any patches in a given make file info array. Called recursively for each
+ * portion of the info array.
+ */
+function _make_get_patches($info) {
+  $patches = array();
+  foreach ($info as $element) {
+    if (is_array($element) && isset($element['patch'])) {
+      $patches = array_merge($patches, $element['patch']);
+    }
+    elseif (is_array($element)) {
+      $patches = array_merge($patches, _make_get_patches($element));
+    }
+  }
+  return $patches;
+}
