diff --git a/commands/core/sitealias.drush.inc b/commands/core/sitealias.drush.inc
index b0c960b..93698d8 100644
--- a/commands/core/sitealias.drush.inc
+++ b/commands/core/sitealias.drush.inc
@@ -37,13 +37,13 @@ function sitealias_drush_command() {
     ),
     'aliases' => array('sa'),
     'examples' => array(
-      'drush site-alias' => 'List all alias records known to drush.',
+      'drush site-alias' => 'List all alias records known to drush, marking the active alias with "*" and the previous alias with "-".',
       'drush site-alias @dev' => 'Print an alias record for the alias \'dev\'.',
     ),
     'topics' => array('docs-aliases'),
   );
   $items['site-set'] = array(
-    'description' => 'Set a site alias to work on that will persist for the current session.',
+    'description' => 'Set a site alias to work on that will persist for the current session. The alias will be marked with "*" in `drush site-alias`, and the previous alias will be marked with "-".',
     'bootstrap' => DRUSH_BOOTSTRAP_DRUSH,
     'arguments' => array(
       'site' => 'Site specification to use, or "-" for previous site.',
@@ -180,6 +180,31 @@ function drush_sitealias_print() {
   $long_output = drush_get_option('long');
   $with_db = (drush_get_option('with-db') != null) || (drush_get_option('with-db-url') != null);
 
+  // If a persistent site alias has been set, prepare to mark it in the list.
+  if ($alias = drush_get_context('DRUSH_TARGET_SITE_ALIAS')) {
+    $alias_record = drush_sitealias_get_record($alias);
+    $current_alias = '@' . $alias_record['#name'];
+    $current_alias_marker = '* ';
+  }
+  else {
+    $current_alias_marker = '';
+  }
+  $other_alias_marker = preg_replace('/./', ' ', $current_alias_marker);
+  // Look for an alternate site alias. See drush_sitealias_site_set().
+  $last_site_filename = drush_sitealias_get_envar_filename('drush-drupal-prev-site-');
+  if (file_exists($last_site_filename)) {
+    $alias = file_get_contents($last_site_filename);
+    $alias_record = drush_sitealias_get_record($alias);
+    $alternate_alias = '@' . $alias_record['#name'];
+    $alternate_alias_marker = '- ';
+  }
+  else {
+    $alternate_alias_marker = $other_alias_marker;
+  }
+  $markers = array_fill_keys(array_keys($site_list), $other_alias_marker);
+  $markers[$current_alias] = $current_alias_marker;
+  $markers[$alternate_alias] = $alternate_alias_marker;
+
   $site_specs = array();
   $rows = array();
   foreach ($site_list as $site => $alias_record) {
@@ -210,7 +235,7 @@ function drush_sitealias_print() {
       }
     }
     else {
-      drush_print($site);
+      drush_print($markers[$site] . $site);
     }
   }
   $site_specs = array_unique($site_specs);
