diff --git a/migrate_plus.drush.inc b/migrate_plus.drush.inc
index 90be8ce..ea978d6 100644
--- a/migrate_plus.drush.inc
+++ b/migrate_plus.drush.inc
@@ -50,6 +50,24 @@ function migrate_plus_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'),
+  );
+
   return $items;
 }
 
@@ -142,6 +160,33 @@ function drush_migrate_plus_migrate_import($migration_names = '') {
 }
 
 /**
+ * @param string $migration_names
+ */
+function drush_migrate_plus_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
