Index: custom_breadcrumbs_views.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/custom_breadcrumbs/custom_breadcrumbs_views/Attic/custom_breadcrumbs_views.module,v
retrieving revision 1.1.2.13
diff -u -r1.1.2.13 custom_breadcrumbs_views.module
--- custom_breadcrumbs_views.module	21 Sep 2009 02:32:46 -0000	1.1.2.13
+++ custom_breadcrumbs_views.module	24 Sep 2009 21:45:08 -0000
@@ -58,7 +58,7 @@
 
   $curpath = drupal_get_normal_path($_GET['q']);
   // Check to see if the view path matches the current path.
-  foreach ($view->display as $display) {
+  foreach ($view->display as $id => $display) {
     // Identify allowed displays for breadcrumb replacement.
     if (!_custom_breadcrumbs_allowed_display($display)) continue;
     $viewpath = _custom_breadcrumbs_construct_view_path($display, $view->args);
@@ -67,17 +67,26 @@
       $breadcrumbs = custom_breadcrumbs_load_breadcrumbs('custom_breadcrumbs_views', NULL, array('views_path' => $loadpath), $languages);
       if (!empty($breadcrumbs)) {
         if ($breadcrumb = custom_breadcrumbs_select_breadcrumb($breadcrumbs, array('view' => $view))) {
-          $objs = _custom_breadcrumbs_views_token_types($display);
-          if (!isset($objs['node']) && isset($view->result[0]->nid)) {
-            $node = node_load(array('nid' => $view->result[0]->nid));
-            $objs['node'] = $node;
+          // Select breadcrumb for the matching display with the greatest number of explicit arguments.
+          $num = substr_count($breadcrumb->views_path, '%');
+          if (!isset($max) || (isset($max) && ($num > $max))) {
+            $max = $num;
+            $candidate = $breadcrumb;
+            $max_id = $id;
           }
-          custom_breadcrumbs_set_breadcrumb($breadcrumb, $objs);
-          return;
         }
       }
     }
   }
+  if (isset($candidate)) {
+    $objs = _custom_breadcrumbs_views_token_types($view->display[$max_id]);
+    if (!isset($objs['node']) && isset($view->result[0]->nid)) {
+      $node = node_load(array('nid' => $view->result[0]->nid));
+      $objs['node'] = $node;
+    }
+    custom_breadcrumbs_set_breadcrumb($candidate, $objs);
+    return;
+  }
   if (variable_get('custom_breadcrumbs_set_menu_breadcrumb', FALSE)) {
     // If a views breadcrumb has not been defined for this view, then use the default menu structure.
     custom_breadcrumbs_set_menu_breadcrumb();

