diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 5577be475741c44e97bbe11156b537eac19e9cfb..f6c69a532414f68883b98924d0382551fbf83a71 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2587,34 +2587,6 @@ function drupal_maintenance_theme() {
   _drupal_maintenance_theme();
 }
 
-/**
- * Returns a simple 404 Not Found page.
- *
- * If fast 404 pages are enabled, and this is a matching page then print a
- * simple 404 page and exit.
- *
- * This function is called when a normal 404 page is generated, but it can also
- * optionally be called directly from settings.php to prevent a Drupal
- * bootstrap on these pages. See documentation in settings.php for the benefits
- * and drawbacks of using this.
- *
- * Paths to dynamically-generated content, such as image styles, should also be
- * accounted for in this function.
- */
-function drupal_fast_404() {
-  $exclude_paths = variable_get('404_fast_paths_exclude', FALSE);
-  if ($exclude_paths && !preg_match($exclude_paths, request_path())) {
-    $fast_paths = variable_get('404_fast_paths', FALSE);
-    if ($fast_paths && preg_match($fast_paths, request_path())) {
-      drupal_add_http_header('Status', '404 Not Found');
-      $fast_404_html = variable_get('404_fast_html', '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>');
-      // Replace @path in the variable with the page path.
-      print strtr($fast_404_html, array('@path' => check_plain(request_uri())));
-      exit;
-    }
-  }
-}
-
 /**
  * Returns TRUE if a Drupal installation is currently being attempted.
  */
diff --git a/core/lib/Drupal/Core/ExceptionController.php b/core/lib/Drupal/Core/ExceptionController.php
index 332d4b9875ac680f8d72dd082ac2c094732b7807..e311c93aad6e51db60a18c294bf8cde7adb5b262 100644
--- a/core/lib/Drupal/Core/ExceptionController.php
+++ b/core/lib/Drupal/Core/ExceptionController.php
@@ -130,7 +130,6 @@ public function on403Html(FlattenException $exception, Request $request) {
       $response->setStatusCode(403, 'Access denied');
     }
     else {
-      $response = new Response('Access Denied', 403);
 
       // @todo Replace this block with something cleaner.
       $return = t('You are not authorized to access this page.');
@@ -139,7 +138,7 @@ public function on403Html(FlattenException $exception, Request $request) {
       $page = element_info('page');
       $content = drupal_render_page($page);
 
-      $response->setContent($content);
+      $response = new Response($content, 403);
     }
 
     return $response;
@@ -157,8 +156,15 @@ public function on404Html(FlattenException $exception, Request $request) {
     watchdog('page not found', check_plain($request->attributes->get('system_path')), array(), WATCHDOG_WARNING);
 
     // Check for and return a fast 404 page if configured.
-    // @todo Inline this rather than using a function.
-    drupal_fast_404();
+    $exclude_paths = variable_get('404_fast_paths_exclude', FALSE);
+    if ($exclude_paths && !preg_match($exclude_paths, $request->getPathInfo())) {
+      $fast_paths = variable_get('404_fast_paths', FALSE);
+      if ($fast_paths && preg_match($fast_paths, $request->getPathInfo())) {
+        $fast_404_html = variable_get('404_fast_html', '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>');
+        $fast_404_html = strtr($fast_404_html, array('@path' => check_plain($request->getUri())));
+        return new Response($fast_404_html, 404);
+      }
+    }
 
     $system_path = $request->attributes->get('system_path');
 
@@ -195,8 +201,6 @@ public function on404Html(FlattenException $exception, Request $request) {
       $response->setStatusCode(404, 'Not Found');
     }
     else {
-      $response = new Response('Not Found', 404);
-
       // @todo Replace this block with something cleaner.
       $return = t('The requested page "@path" could not be found.', array('@path' => $request->getPathInfo()));
       drupal_set_title(t('Page not found'));
@@ -204,7 +208,7 @@ public function on404Html(FlattenException $exception, Request $request) {
       $page = element_info('page');
       $content = drupal_render_page($page);
 
-      $response->setContent($content);
+      $response = new Response($content, 404);
     }
 
     return $response;