diff -u b/core/includes/common.inc b/core/includes/common.inc --- b/core/includes/common.inc +++ b/core/includes/common.inc @@ -2326,6 +2326,10 @@ // Append active class. if (($path == current_path() || ($path == '' && drupal_is_front_page())) && (empty($options['language']) || $options['language']->langcode == drupal_container()->get(LANGUAGE_TYPE_URL)->langcode)) { + // Only mark the link as active, if the query parameters of the current + // request equal the query parameters of the link, since the same request + // with different query parameters may yield a completely different page + // (e.g., pagers). if ($_GET == $options['query']) { $options['attributes']['class'][] = 'active'; } only in patch2: unchanged: --- a/core/includes/pager.inc +++ b/core/includes/pager.inc @@ -470,13 +470,7 @@ function theme_pager_link($variables) { } } - // @todo l() cannot be used here, since it adds an 'active' class based on the - // path only (which is always the current path for pager links). Apparently, - // none of the pager links is active at any time - but it should still be - // possible to use l() here. - // @see http://drupal.org/node/1410574 - $attributes['href'] = url(current_path(), array('query' => $query)); - return '' . check_plain($text) . ''; + return l($text, current_path(), array('query' => $query, 'attributes' => $attributes)); } /**