diff --git a/migrate_tools/migrate_tools.drush.inc b/migrate_tools/migrate_tools.drush.inc
index d039073..052b9ac 100644
--- a/migrate_tools/migrate_tools.drush.inc
+++ b/migrage_tools/migrate_tools.drush.inc
@@ -51,6 +51,24 @@ function migrate_tools_drush_command() {
     'aliases' => array('mi'),
   );
 
+  $items['migrate-rollback'] = array(
+    'description' => 'Rollback one or more migrations.',
+    'options' => array(
+      'all' => 'Process all migrations.',
+      'group' => 'Name of the migration group to rollback',
+    ),
+    'arguments' => array(
+      'migration' => 'Name of migration(s) to rollback. Delimit multiple using commas.',
+    ),
+    'examples' => array(
+      'migrate-rollback --all' => 'Perform all migrations',
+      'migrate-rollback --group=beer' => 'Rollback all migrations in the beer group',
+      'migrate-rollback BeerTerm,BeerNode' => 'Rollback imported terms and nodes',
+    ),
+    'drupal dependencies' => array('migrate_plus'),
+    'aliases' => array('mr'),
+  );
+
   $items['migrate-manifest'] = array(
     'description' => 'Execute the migrations as specified in a manifest file.',
     'arguments' => array(
@@ -157,6 +175,33 @@ function drush_migrate_plus_migrate_import($migration_names = '') {
 }
 
 /**
+ * @param string $migration_names
+ */
+function drush_migrate_tools_migrate_rollback($migration_names = '') {
+  $group_name = drush_get_option('group');
+  $all = drush_get_option('all');
+  if (!$all && !$group_name && !$migration_names) {
+    drush_set_error('MIGRATE_ERROR', dt('You must specify --all, --group, or one or more migration names separated by commas'));
+    return;
+  }
+
+  $log = new DrushLogMigrateMessage();
+
+  $migrations = drush_migrate_plus_migration_list($group_name, $migration_names);
+
+  // Take it one group at a time, rolling back the migrations within each group.
+  foreach ($migrations as $group_id => $migration_list) {
+    // Roll back in reverse order.
+    $migration_list = array_reverse($migration_list);
+    foreach ($migration_list as $migration_id => $migration) {
+      $executable = new MigrateExecutable($migration, $log);
+      // drush_op() provides --simulate support.
+      drush_op(array($executable, 'rollback'));
+    }
+  }
+}
+
+/**
  * Retrieve a list of active migrations.
  *
  * @param string $group_id
