diff --git a/includes/easy_breadcrumb.blocks.inc b/includes/easy_breadcrumb.blocks.inc
index 0bd8432..58c2d6a 100644
--- a/includes/easy_breadcrumb.blocks.inc
+++ b/includes/easy_breadcrumb.blocks.inc
@@ -207,17 +207,32 @@ function _easy_breadcrumb_check_excluded_path($url) {
  * @return string
  *   segment title.
  */
-function _easy_breadcrumb_obtain_segment_title($normal_path,
-$valid_path, $segment_text) {
+function _easy_breadcrumb_obtain_segment_title($normal_path, $valid_path,
+  $segment_text
+) {
+  $title = '';
+  // Provide hook to define title
+  $overrides = module_invoke_all('easy_breadcrumb_segment_title', $normal_path,
+    $valid_path, $segment_text);
+  if (is_array($overrides) && isset($overrides[$normal_path])) {
+    $title = $overrides[$normal_path];
+  }
   // if path is valid then try to obtain the title from the menu router (if available).
-  if ($valid_path) {
+  if (!$title && $valid_path) {
     $router_item = menu_get_item($normal_path);
     $title = $router_item['title'];
   }
   // just infer the title from the segment text.
-  if (!isset($title) || $title === '') {
+  if (!$title) {
     $title = _easy_breadcrumb_normalize_text($segment_text);
   }
+  // Provide hook to alter title
+  $context = array(
+    'normal_path' => $normal_path,
+    'valid_path' => $valid_path,
+    'segment_text' => $segment_text,
+  );
+  drupal_alter('easy_breadcrumb_segment_title', $title, $context);
   return $title;
 }
 
