diff --git a/core/modules/comment/comment.routing.yml b/core/modules/comment/comment.routing.yml
index a61e8c1..b5836f0 100644
--- a/core/modules/comment/comment.routing.yml
+++ b/core/modules/comment/comment.routing.yml
@@ -69,7 +69,7 @@ comment.bundle_list:
     _permission: 'administer comments'
 
 comment.bundle:
-  path: '/admin/structure/comments/manage/{field_name}'
+  path: '/admin/structure/comments/manage/{bundle}'
   defaults:
     _content: 'Drupal\comment\Controller\AdminController::bundleInfo'
     _title_callback: 'Drupal\comment\Controller\AdminController::bundleTitle'
diff --git a/core/modules/comment/comment.services.yml b/core/modules/comment/comment.services.yml
index a82bbe4..084f9b8 100644
--- a/core/modules/comment/comment.services.yml
+++ b/core/modules/comment/comment.services.yml
@@ -8,3 +8,9 @@ services:
   comment.manager:
     class: Drupal\comment\CommentManager
     arguments: ['@field.info', '@entity.manager']
+
+  comment.route_enhancer:
+      class: Drupal\comment\Routing\CommentBundleEnhancer
+      arguments: ['@entity.manager']
+      tags:
+        - { name: route_enhancer}
diff --git a/core/modules/comment/lib/Drupal/comment/CommentManager.php b/core/modules/comment/lib/Drupal/comment/CommentManager.php
index 4b3ab0b..7c6fdc1 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentManager.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentManager.php
@@ -226,18 +226,19 @@ public function addBodyField($entity_type, $field_name) {
   /**
    * Builds human readable page title for field_ui management screens.
    *
+   * @param string $entity_type
+   *   The entity type to which the comment field is attached.
    * @param string $field_name
    *   The comment field for which the overview is to be displayed.
    *
    * @return string
    *   The human readable field name.
    */
-  public function getFieldUIPageTitle($field_name) {
-    list($entity_type, $field) = explode('__', $field_name, 2);
-    $field_info = $this->fieldInfo->getField($entity_type, $field);
+  public function getFieldUIPageTitle($entity_type, $field_name) {
+    $field_info = $this->fieldInfo->getField($entity_type, $field_name);
     $bundles = $field_info->getBundles();
     $sample_bundle = reset($bundles);
-    $sample_instance = $this->fieldInfo->getInstance($entity_type, $sample_bundle, $field);
+    $sample_instance = $this->fieldInfo->getInstance($entity_type, $sample_bundle, $field_name);
     return String::checkPlain($sample_instance->label);
   }
 
diff --git a/core/modules/comment/lib/Drupal/comment/Controller/AdminController.php b/core/modules/comment/lib/Drupal/comment/Controller/AdminController.php
index 4f49850..a78fcde 100644
--- a/core/modules/comment/lib/Drupal/comment/Controller/AdminController.php
+++ b/core/modules/comment/lib/Drupal/comment/Controller/AdminController.php
@@ -169,6 +169,8 @@ public function overviewBundles() {
   /**
    * Returns an overview of the entity types a comment field is attached to.
    *
+   * @param string $entity_type
+   *   The entity type to which the comment field is attached.
    * @param string $field_name
    *   The comment field for which the overview is to be displayed.
    *
@@ -176,14 +178,11 @@ public function overviewBundles() {
    *   A renderable array containing the list of entity types and bundle
    *   combinations on which the comment field is in use.
    */
-  public function bundleInfo($field_name) {
+  public function bundleInfo($entity_type, $field_name) {
     // Add a link to manage entity fields if the Field UI module is enabled.
     $field_ui_enabled = $this->moduleHandler()->moduleExists('field_ui');
 
-    // @todo Provide dynamic routing to get entity type and field name.
-    //   https://drupal.org/node/2098011.
-    list($entity_type, $field) = explode('__', $field_name, 2);
-    $field_info = $this->fieldInfo->getField($entity_type, $field);
+    $field_info = $this->fieldInfo->getField($entity_type, $field_name);
 
     $entity_type_info = $this->entityManager()->getDefinition($entity_type);
     $entity_bundle_info = $this->entityManager()->getBundleInfo($entity_type);
@@ -214,14 +213,16 @@ public function bundleInfo($field_name) {
   /**
    * Route title callback.
    *
+   * @param string $entity_type
+   *   The entity type to which the comment field is attached.
    * @param string $field_name
    *   The comment field for which the overview is to be displayed.
    *
    * @return string
    *   The human readable field name.
    */
-  public function bundleTitle($field_name) {
-    return $this->commentManager->getFieldUIPageTitle($field_name);
+  public function bundleTitle($entity_type, $field_name) {
+    return $this->commentManager->getFieldUIPageTitle($entity_type, $field_name);
   }
 
 }
diff --git a/core/modules/comment/lib/Drupal/comment/Routing/CommentBundleEnhancer.php b/core/modules/comment/lib/Drupal/comment/Routing/CommentBundleEnhancer.php
new file mode 100644
index 0000000..960f3e4
--- /dev/null
+++ b/core/modules/comment/lib/Drupal/comment/Routing/CommentBundleEnhancer.php
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\comment\Routing\CommentBundleEnhancer.
+ */
+
+namespace Drupal\comment\Routing;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Cmf\Component\Routing\Enhancer\RouteEnhancerInterface;
+use Symfony\Cmf\Component\Routing\RouteObjectInterface;
+use Drupal\Core\Entity\EntityManager;
+
+/**
+ * Constructs a route enhancer to extract values from comment bundles.
+ *
+ * Comment bundle names are of the form {entity_type}__{field_name}. This
+ * enhancer extracts them from the path and makes them available as arguments
+ * to controllers.
+ */
+class CommentBundleEnhancer implements RouteEnhancerInterface {
+
+  /**
+   * The entity manager service.
+   *
+   * @var \Drupal\Core\Entity\EntityManager
+   */
+  protected $entityManager;
+
+  /**
+   * Constructs a CommentBundleEnhancer object.
+   */
+  public function __construct(EntityManager $entity_manager) {
+    $this->entityManager = $entity_manager;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function enhance(array $defaults, Request $request) {
+    $bundles = $this->entityManager->getBundleInfo('comment');
+    if (isset($defaults['bundle']) && ($bundle = $request->attributes->get('bundle')) &&
+      isset($bundles[$bundle])) {
+      list($entity_type, $field_name) = explode('__', $bundle, 2);
+      $defaults['entity_type'] = $entity_type;
+      $defaults['field_name'] = $field_name;
+    }
+    return $defaults;
+  }
+
+}
diff --git a/core/modules/comment/tests/Drupal/comment/Tests/Routing/CommentBundleEnhancerTest.php b/core/modules/comment/tests/Drupal/comment/Tests/Routing/CommentBundleEnhancerTest.php
new file mode 100644
index 0000000..c97295e
--- /dev/null
+++ b/core/modules/comment/tests/Drupal/comment/Tests/Routing/CommentBundleEnhancerTest.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\comment\Tests\Routing\CommentBundleEnhancerTest.
+ */
+namespace Drupal\comment\Tests\Routing;
+
+use Drupal\comment\Routing\CommentBundleEnhancer;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Tests the comment bundle enhancer route enhancer.
+ *
+ * @see \Drupal\comment\Routing\CommentBundleEnhancer
+ */
+class CommentBundleEnhancerTest extends UnitTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Comment route enhancer test',
+      'description' => 'Tests the comment route enhancer.',
+      'group' => 'Comment'
+    );
+  }
+
+  /**
+   * Tests the enhancer method.
+   *
+   * @see \Drupal\comment\Routing\CommentBundleEnhancer::enhancer()
+   */
+  public function testEnhancer() {
+    $entityManager = $this->getMockBuilder('\Drupal\Core\Entity\EntityManager')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $entityManager->expects($this->any())
+      ->method('getBundleInfo')
+      ->will($this->returnValue(array(
+        'node__comment' => array(),
+        'node__comment_forum' => array(),
+      )));
+    $route_enhancer = new CommentBundleEnhancer($entityManager);
+
+    // Test with a comment bundle.
+    $request = new Request();
+    $request->attributes->set('bundle', 'node__comment');
+    $defaults = array('bundle' => 'node__comment');
+    $new_defaults = $route_enhancer->enhance($defaults, $request);
+    $this->assertEquals($new_defaults['field_name'], 'comment');
+    $this->assertEquals($new_defaults['entity_type'], 'node');
+
+    // Test again with a non-comment bundle
+    $request->attributes->set('bundle', 'node__field_foobar');
+    $defaults = array('bundle' => 'node__field_foobar');
+    $new_defaults = $route_enhancer->enhance($defaults, $request);
+    $this->assertTrue(empty($new_defaults['field_name']));
+    $this->assertTrue(empty($new_defaults['entity_type']));
+  }
+
+}
