diff --git a/migrate_tools.drush.inc b/migrate_tools.drush.inc
index 4612874..a7023f1 100644
--- a/migrate_tools.drush.inc
+++ b/migrate_tools.drush.inc
@@ -75,6 +75,7 @@ function migrate_tools_drush_command() {
       'group' => 'A comma-separated list of migration groups to rollback',
       'tag' => 'ID of the migration tag to rollback',
       'feedback' => 'Frequency of progress messages, in items processed',
+      'missing-from-source' => 'Rollback only items missing from the source',
     ),
     'arguments' => array(
       'migration' => 'Name of migration(s) to rollback. Delimit multiple using commas.',
@@ -85,6 +86,7 @@ function migrate_tools_drush_command() {
       'migrate-rollback --tag=user' => 'Rollback all migrations with the user tag',
       'migrate-rollback --group=beer --tag=user' => 'Rollback all migrations in the beer group and with the user tag',
       'migrate-rollback beer_term,beer_node' => 'Rollback imported terms and nodes',
+      'migrate-rollback --missing-from-source beer_term' => 'Rollback only the imported terms that are no longer available from the source',
     ),
     'drupal dependencies' => array('migrate_tools'),
     'aliases' => array('mr'),
@@ -300,6 +302,7 @@ function drush_migrate_tools_migrate_rollback($migration_names = '') {
   $group_names = drush_get_option('group');
   $tag_names = drush_get_option('tag');
   $all = drush_get_option('all');
+  $missing_only = drush_get_option('missing-from-source');
   $options = [];
   if (!$all && !$group_names && !$migration_names && !$tag_names) {
     drush_set_error('MIGRATE_ERROR', dt('You must specify --all, --group, --tag, or one or more migration names separated by commas'));
@@ -318,13 +321,14 @@ function drush_migrate_tools_migrate_rollback($migration_names = '') {
   }
 
   // Take it one group at a time, rolling back the migrations within each group.
+  $operation = $missing_only ? 'rollbackMissingItems' : 'rollback';
   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, $options);
       // drush_op() provides --simulate support.
-      drush_op(array($executable, 'rollback'));
+      drush_op(array($executable, $operation));
     }
   }
 }
diff --git a/src/Commands/MigrateToolsCommands.php b/src/Commands/MigrateToolsCommands.php
index 501c6ac..cd290b4 100644
--- a/src/Commands/MigrateToolsCommands.php
+++ b/src/Commands/MigrateToolsCommands.php
@@ -330,6 +330,7 @@ class MigrateToolsCommands extends DrushCommands {
    * @option group A comma-separated list of migration groups to rollback
    * @option tag ID of the migration tag to rollback
    * @option feedback Frequency of progress messages, in items processed
+   * @option missing-from-source Rollback only items missing from the source
    *
    * @usage migrate:rollback --all
    *   Perform all migrations
@@ -341,6 +342,9 @@ class MigrateToolsCommands extends DrushCommands {
    *   Rollback all migrations in the beer group and with the user tag
    * @usage migrate:rollback beer_term,beer_node
    *   Rollback imported terms and nodes
+   * @usage migrate-rollback --missing-from-source beer_term
+   *   Rollback only the imported terms that are no longer available from the
+   *   source
    * @validate-module-enabled migrate_tools
    *
    * @aliases mr, migrate-rollback
@@ -355,6 +359,7 @@ class MigrateToolsCommands extends DrushCommands {
       'group' => NULL,
       'tag' => NULL,
       'feedback' => NULL,
+      'missing-from-source' => NULL,
     ]
   ) {
     $group_names = $options['group'];
@@ -374,6 +379,8 @@ class MigrateToolsCommands extends DrushCommands {
       $this->logger()->error(dt('No migrations found.'));
     }
 
+    $operation = $options['missing-from-source'] ? 'rollbackMissingItems' : 'rollback';
+
     // Take it one group at a time,
     // rolling back the migrations within each group.
     foreach ($migrations as $group_id => $migration_list) {
@@ -386,7 +393,7 @@ class MigrateToolsCommands extends DrushCommands {
           $additional_options
         );
         // drush_op() provides --simulate support.
-        drush_op([$executable, 'rollback']);
+        drush_op([$executable, $operation]);
       }
     }
   }
