diff --git a/core/modules/forum/src/Breadcrumb/ForumListingBreadcrumbBuilder.php b/core/modules/forum/src/Breadcrumb/ForumListingBreadcrumbBuilder.php
index 9d63772..d1f645b 100644
--- a/core/modules/forum/src/Breadcrumb/ForumListingBreadcrumbBuilder.php
+++ b/core/modules/forum/src/Breadcrumb/ForumListingBreadcrumbBuilder.php
@@ -24,6 +24,8 @@ public function applies(RouteMatchInterface $route_match) {
 
   /**
    * {@inheritdoc}
+   *
+   * @see \Drupal\taxonomy\TermBreadcrumbBuilder::build()
    */
   public function build(RouteMatchInterface $route_match) {
     $breadcrumb = parent::build($route_match);
diff --git a/core/modules/taxonomy/src/TermBreadcrumbBuilder.php b/core/modules/taxonomy/src/TermBreadcrumbBuilder.php
index 7c4cc89..dd5001d 100644
--- a/core/modules/taxonomy/src/TermBreadcrumbBuilder.php
+++ b/core/modules/taxonomy/src/TermBreadcrumbBuilder.php
@@ -54,17 +54,16 @@ public function applies(RouteMatchInterface $route_match) {
 
   /**
    * {@inheritdoc}
+   *
+   * @see \Drupal\forum\Breadcrumb\ForumListingBreadcrumbBuilder::build()
    */
   public function build(RouteMatchInterface $route_match) {
     $term = $route_match->getParameter('taxonomy_term');
-    // @todo This overrides any other possible breadcrumb and is a pure
-    //   hard-coded presumption. Make this behavior configurable per
-    //   vocabulary or term.
     $breadcrumb = array();
     while ($parents = $this->termStorage->loadParents($term->id())) {
       $term = array_shift($parents);
       $term = $this->entityManager->getTranslationFromContext($term);
-      $breadcrumb[] = Link::createFromRoute($term->getName(), 'entity.taxonomy_term.canonical', array('taxonomy_term' => $term->id()));
+      $breadcrumb[] = new Link($term->getName(), $term->urlInfo());
     }
     $breadcrumb[] = Link::createFromRoute($this->t('Home'), '<front>');
     $breadcrumb = array_reverse($breadcrumb);
