diff --git includes/common.inc includes/common.inc
index b08099b..a2071eb 100644
--- includes/common.inc
+++ includes/common.inc
@@ -2184,9 +2184,9 @@ function l($text, $path, array $options = array()) {
 
   // Merge in defaults.
   $options += array(
-      'attributes' => array(),
-      'html' => FALSE,
-    );
+    'attributes' => array(),
+    'html' => FALSE,
+  );
 
   // Append active class.
   if (($path == $_GET['q'] || ($path == '<front>' && drupal_is_front_page())) &&
diff --git includes/theme.inc includes/theme.inc
index 26c9b4a..9dac764 100644
--- includes/theme.inc
+++ includes/theme.inc
@@ -1497,18 +1497,26 @@ function theme_image($variables) {
  * @param $variables
  *   An associative array containing:
  *   - breadcrumb: An array containing the breadcrumb links.
+ *   - breadcrumb_back: A string containing the breadcrumb's 'back' link.
  */
 function theme_breadcrumb($variables) {
   $breadcrumb = $variables['breadcrumb'];
+  $breadcrumb_back = $variables['breadcrumb_back'];
+  $output = '';
 
+  if (!empty($breadcrumb_back)) {
+    $output .= $breadcrumb_back . ' &laquo; ';
+  }
   if (!empty($breadcrumb)) {
     // Provide a navigational heading to give context for breadcrumb links to
     // screen-reader users. Make the heading invisible with .element-invisible.
-    $output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
+    $output .= '<h2 class="element-invisible">' . t('You are here') . '</h2>';
 
-    $output .= '<div class="breadcrumb">' . implode(' » ', $breadcrumb) . '</div>';
-    return $output;
+    $output .= implode(' » ', $breadcrumb);
   }
+  
+  if ($output) $output = '<div class="breadcrumb">' . $output . '</div';
+  return $output;
 }
 
 /**
@@ -2217,7 +2225,7 @@ function template_preprocess_page(&$variables) {
 
   $variables['base_path']         = base_path();
   $variables['front_page']        = url();
-  $variables['breadcrumb']        = theme('breadcrumb', array('breadcrumb' => drupal_get_breadcrumb()));
+  $variables['breadcrumb']        = theme('breadcrumb', array('breadcrumb' => drupal_get_breadcrumb(), 'breadcrumb_back' => drupal_get_breadcrumb_back()));
   $variables['feed_icons']        = drupal_get_feeds();
   $variables['language']          = $GLOBALS['language'];
   $variables['language']->dir     = $GLOBALS['language']->direction ? 'rtl' : 'ltr';
diff --git modules/system/system.module modules/system/system.module
index bf11a0d..18b2678 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -1814,7 +1814,6 @@ function system_init() {
   drupal_add_css(drupal_get_path('module', 'system') . '/system-menus.css', array('weight' => CSS_SYSTEM));
   drupal_add_css(drupal_get_path('module', 'system') . '/system-messages.css', array('weight' => CSS_SYSTEM));
 
-
   // Ignore slave database servers for this request.
   //
   // In Drupal's distributed database structure, new data is written to the master
@@ -3677,3 +3676,48 @@ function system_admin_paths() {
   );
   return $paths;
 }
+
+/**
+ * Returns the 'back' entry for the breadcrumb.
+ *
+ * The back link is the last non-administrative page visited by a non-anonymous
+ * user.
+ *
+ * @return
+ *   A link to the 'back' page, if one is set.
+ */
+function drupal_get_breadcrumb_back() {
+  
+  $breadcrumb_back = '';
+  
+  // Don't bother $_SESSION unless it's a logged in user.
+  if (!user_is_anonymous()) {
+
+    $current_path = current_path();
+    if (path_is_admin($current_path)) {
+      // On administrative pages, set the 'back' breadcrumb link that
+      // takes the user back to their last-visited non-administrative page.
+      if (!empty($_SESSION['system_last_non_admin_path'])) {
+        $breadcrumb_back = t('<a href="@url">Back to %title</a>', array(
+          '@url' => $_SESSION['system_last_non_admin_path']['href'],
+          '%title' => $_SESSION['system_last_non_admin_path']['title'],
+        ));
+      }
+    }
+    else {
+      $_SESSION['system_last_non_admin_path'] = array();
+      // On non-administrative pages, store data about the page so that
+      // administrative pages which the user visits later can link back to this
+      // page. Don't do it for the front page though, as it would be redundant
+      // due to the 'Home' entry.
+      if (variable_get('site_frontpage', 'node') != $current_path) {
+        $_SESSION['system_last_non_admin_path'] = array(
+          'href' => $current_path,
+          'title' => drupal_get_title(),
+        );
+      }
+    }
+  }
+  
+  return $breadcrumb_back;
+}
