diff --git a/panels_breadcrumbs.module b/panels_breadcrumbs.module
index 84a774d..70fb64b 100644
--- a/panels_breadcrumbs.module
+++ b/panels_breadcrumbs.module
@@ -129,27 +129,31 @@ function panels_breadcrumbs_ctools_render_alter($info, $page, $context) {
   $titles = array_filter(explode(PHP_EOL, $titles), 'strlen');
   $paths = array_filter(explode(PHP_EOL, $paths), 'strlen');
 
+  $default = array(
+    'title' => '',
+    'href' => '',
+    'localized_options' => array(),
+  );
   // Sets the First Crumb to Home.
   // TODO Should probably add an admin configuration page to change this.
-  $breadcrumbs = array(l(t('Home'), '<front>'));
-
+  $breadcrumbs_info = array(array('title' => t('Home'), 'href' => '<front>') + $default);
   // Iterate through all titles and add them to the breadcrumb
   foreach ($titles as $key => $title) {
-
     $title = trim($title);
     $path = trim($paths[$key]);
+    $breadcrumbs_info[] = array('title' => t($title), 'href' => $path) + $default;
+  }
 
-    if ($path == '<none>') {
-      $breadcrumbs[] = t($title);
+  drupal_alter('menu_breadcrumb', $breadcrumbs_info, end($breadcrumbs_info));
+  $breadcrumbs = array();
+  foreach ($breadcrumbs_info as $parent) {
+    if (isset($parent['href']) && $parent['href'] == '<none>') {
+      $parent['localized_options'] += array('attributes' => array(), 'html' => false);
+      $breadcrumbs[] = '<span ' . drupal_attributes($parent['localized_options']['attributes']) . '>' . ($parent['localized_options']['html'] ? $parent['title'] : check_plain($parent['title'])) . '</span>';
     }
     else {
-      $breadcrumbs[] = l(t($title), $path);
+      $breadcrumbs[] = l($parent['title'], $parent['href'], $parent['localized_options']);
     }
-
   }
-
-  // Removes duplicate breadcrumbs
-  $breadcrumbs = array_unique($breadcrumbs);
-
   drupal_set_breadcrumb($breadcrumbs);
-}
\ No newline at end of file
+}
