diff --git a/core/modules/comment/comment.admin.inc b/core/modules/comment/comment.admin.inc
index 488c2f9..49f8713 100644
--- a/core/modules/comment/comment.admin.inc
+++ b/core/modules/comment/comment.admin.inc
@@ -9,27 +9,6 @@
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 
 /**
- * Page callback: Presents an administrative comment listing.
- *
- * @param $type
- *   The type of the overview form ('approval' or 'new'). See
- *   comment_admin_overview() for details.
- *
- * @see comment_menu()
- * @see comment_multiple_delete_confirm()
- */
-function comment_admin($type = 'new') {
-  $edit = $_POST;
-
-  if (isset($edit['operation']) && ($edit['operation'] == 'delete') && isset($edit['comments']) && $edit['comments']) {
-    return drupal_get_form('comment_multiple_delete_confirm');
-  }
-  else {
-    return drupal_get_form('comment_admin_overview', $type);
-  }
-}
-
-/**
  * Form constructor for the comment overview administration form.
  *
  * @param $arg
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 5690c72..d31c8f2 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -223,10 +223,8 @@ function comment_menu() {
   $items['admin/content/comment'] = array(
     'title' => 'Comments',
     'description' => 'List and edit site comments and the comment approval queue.',
-    'page callback' => 'comment_admin',
-    'access arguments' => array('administer comments'),
+    'route_name' => 'comment_admin',
     'type' => MENU_LOCAL_TASK | MENU_NORMAL_ITEM,
-    'file' => 'comment.admin.inc',
   );
   // Tabs begin here.
   $items['admin/content/comment/new'] = array(
diff --git a/core/modules/comment/comment.routing.yml b/core/modules/comment/comment.routing.yml
new file mode 100644
index 0000000..3aee9d7
--- /dev/null
+++ b/core/modules/comment/comment.routing.yml
@@ -0,0 +1,6 @@
+comment_admin:
+  path: '/admin/content/comment'
+  defaults:
+    _content: '\Drupal\comment\Controller\CommentController::adminOverview'
+  requirements:
+    _permission: 'administer comments'
\ No newline at end of file
diff --git a/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php b/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php
new file mode 100644
index 0000000..4b625a3
--- /dev/null
+++ b/core/modules/comment/lib/Drupal/comment/Controller/CommentController.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+* @file
+* Contains \Drupal\comment\Controller\CommentController.
+*/
+
+namespace Drupal\comment\Controller;
+
+use Drupal\Core\ControllerInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+* Controller methods for comment routes.
+*/
+class CommentController implements ControllerInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container) {
+    return new static();
+  }
+
+  /**
+   * Returns an administrative overview of comments.
+   *
+   * @return string
+   *   A HTML-formatted string with the administrative page content.
+   */
+  public function adminOverview($type = 'new') {
+    $edit = $_POST;
+
+    if (isset($edit['operation']) && ($edit['operation'] == 'delete') && isset($edit['comments']) && $edit['comments']) {
+      return drupal_get_form('comment_multiple_delete_confirm');
+    }
+    else {
+      return drupal_get_form('comment_admin_overview', $type);
+    }
+  }
+
+}
