diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index 857a33b..d194758 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -309,8 +309,6 @@ function filter_formats($account = NULL) {
  */
 function filter_formats_reset() {
   cache()->deleteTags(array('filter_formats' => TRUE));
-  cache()->delete('filter_list_format');
-  drupal_static_reset('filter_list_format');
   drupal_static_reset('filter_formats');
 }
 
@@ -405,7 +403,7 @@ function filter_default_format($account = NULL) {
 function filter_get_filter_types_by_format($format_id) {
   $filter_types = array();
 
-  $filters = filter_list_format($format_id);
+  $filters = entity_load('filter_format', $format_id)->filters();
   foreach ($filters as $filter) {
     if ($filter->status) {
       $filter_types[] = $filter->getType();
@@ -484,52 +482,6 @@ function filter_format_allowcache($format_id) {
 }
 
 /**
- * Retrieves a list of filters for a given text format.
- *
- * Note that this function returns all associated filters regardless of whether
- * they are enabled or disabled. All functions working with the filter
- * information outside of filter administration should test for $filter->status
- * before performing actions with the filter.
- *
- * @param $format_id
- *   The format ID to retrieve filters for.
- *
- * @return
- *   An array of filter objects associated to the given text format, keyed by
- *   filter name.
- *
- * @todo Change this function to only return enabled filters. Code that needs to
- *   access disabled filters is not regular runtime code and thus can work with
- *   the FilterFormat::filters().
- */
-function filter_list_format($format_id) {
-  $filters = &drupal_static(__FUNCTION__, array());
-
-  if (!isset($filters['all'])) {
-    if ($cache = cache()->get('filter_list_format')) {
-      $filters['all'] = $cache->data;
-    }
-    else {
-      $filters['all'] = array();
-      $filter_formats = filter_formats();
-      foreach ($filter_formats as $filter_format) {
-        // This loop must not instantiate the actual filter plugins, since the
-        // filter bag would be duplicated for each filter plugin instance upon
-        // unserialization of the cache item.
-        $filters['all'][$filter_format->id()] = $filter_format->filters();
-      }
-      cache()->set('filter_list_format', $filters['all']);
-    }
-  }
-
-  if (!isset($filters[$format_id]) && isset($filters['all'][$format_id])) {
-    $filters[$format_id] = $filters['all'][$format_id];
-  }
-
-  return isset($filters[$format_id]) ? $filters[$format_id] : array();
-}
-
-/**
  * Runs all the enabled filters on a piece of text.
  *
  * Note: Because filters can inject JavaScript or execute PHP code, security is
@@ -598,7 +550,7 @@ function check_markup($text, $format_id = NULL, $langcode = '', $cache = FALSE,
   $text = str_replace(array("\r\n", "\r"), "\n", $text);
 
   // Get a complete list of filters, ordered properly.
-  $filters = filter_list_format($format->format);
+  $filters = $format->filters();
 
   // Give filters the chance to escape HTML-like data such as code or formulas.
   foreach ($filters as $filter) {
@@ -896,8 +848,7 @@ function _filter_tips($format_id, $long = FALSE) {
   }
 
   foreach ($formats as $format) {
-    $filters = filter_list_format($format->format);
-    foreach ($filters as $name => $filter) {
+    foreach ($format->filters() as $name => $filter) {
       if ($filter->status) {
         $tip = $filter->tips($long);
         if (isset($tip)) {
diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterCrudTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterCrudTest.php
index 80b9dd1..28eb770 100644
--- a/core/modules/filter/lib/Drupal/filter/Tests/FilterCrudTest.php
+++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterCrudTest.php
@@ -39,7 +39,6 @@ function testTextFormatCrud() {
     $format->name = 'Empty format';
     $format->save();
     $this->verifyTextFormat($format);
-    $this->verifyFilters($format);
 
     // Add another text format specifying all possible properties.
     $format = entity_create('filter_format', array());
@@ -53,7 +52,6 @@ function testTextFormatCrud() {
     ));
     $format->save();
     $this->verifyTextFormat($format);
-    $this->verifyFilters($format);
 
     // Alter some text format properties and save again.
     $format->name = 'Altered format';
@@ -65,7 +63,6 @@ function testTextFormatCrud() {
     ));
     $format->save();
     $this->verifyTextFormat($format);
-    $this->verifyFilters($format);
 
     // Add a uncacheable filter and save again.
     $format->setFilterConfig('filter_test_uncacheable', array(
@@ -73,7 +70,6 @@ function testTextFormatCrud() {
     ));
     $format->save();
     $this->verifyTextFormat($format);
-    $this->verifyFilters($format);
 
     // Disable the text format.
     $format->disable()->save();
@@ -99,9 +95,8 @@ function verifyTextFormat($format) {
     $this->assertEqual($format->langcode, $default_langcode, format_string('filter_format_load: Proper language code for text format %format.', $t_args));
 
     // Verify the 'cache' text format property according to enabled filters.
-    $filters = filter_list_format($filter_format->format);
     $cacheable = TRUE;
-    foreach ($filters as $name => $filter) {
+    foreach ($format->filters() as $name => $filter) {
       // If this filter is not cacheable, update $cacheable accordingly, so we
       // can verify $format->cache after iterating over all filters.
       if ($filter->status && !$filter->cache) {
@@ -112,25 +107,4 @@ function verifyTextFormat($format) {
     $this->assertEqual($filter_format->cache, $cacheable, 'Text format contains proper cache property.');
   }
 
-  /**
-   * Verifies that filters are properly stored for a text format.
-   */
-  function verifyFilters($format) {
-    $filters = filter_list_format($format->format);
-    $format_filters = $format->filters();
-    foreach ($filters as $name => $filter) {
-      $t_args = array('%format' => $format->name, '%filter' => $name);
-
-      // Verify that filter status is properly stored.
-      $this->assertEqual($filter->status, $format_filters->get($name)->status, format_string('filter_list_format: Proper status for %filter in text format %format.', $t_args));
-
-      // Verify that filter settings were properly stored.
-      $this->assertEqual($filter->settings, $format_filters->get($name)->settings, format_string('filter_list_format: Proper filter settings for %filter in text format %format.', $t_args));
-
-      // Verify that each filter has a module name assigned.
-      $this->assertTrue(!empty($filter->module), format_string('filter_list_format: Proper module name for %filter in text format %format.', $t_args));
-    }
-    $this->assertEqual(count($filters), count($format_filters), 'filter_list_format: All filters for the format are present.');
-  }
-
 }
diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterSettingsTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterSettingsTest.php
index 1b6c173..a11db5d 100644
--- a/core/modules/filter/lib/Drupal/filter/Tests/FilterSettingsTest.php
+++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterSettingsTest.php
@@ -62,7 +62,7 @@ function testFilterDefaults() {
     filter_formats_reset();
 
     // Verify that saved filter settings have not been changed.
-    foreach (filter_list_format($filter_defaults_format->format) as $name => $filter) {
+    foreach ($filter_defaults_format->filters() as $name => $filter) {
       $this->assertEqual($filter->weight, $saved_settings[$name]['weight'], format_string('@name filter weight %saved equals %previous', array(
         '@name' => $name,
         '%saved' => $filter->weight,
diff --git a/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php b/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php
index c18273a..76a21d3 100644
--- a/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php
+++ b/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php
@@ -39,7 +39,7 @@ function setUp() {
     $this->assertEqual($this->php_code_format->name, 'PHP code', 'PHP code text format was created.');
 
     // Verify that the format has the PHP code filter enabled.
-    $filters = filter_list_format($php_format_id);
+    $filters = entity_load('filter_format', $php_format_id)->filters();
     $this->assertTrue($filters->get('php_code')->status, 'PHP code filter is enabled.');
 
     // Verify that the format exists on the administration page.
diff --git a/core/modules/text/text.module b/core/modules/text/text.module
index 4fe2115..5fa8a27 100644
--- a/core/modules/text/text.module
+++ b/core/modules/text/text.module
@@ -274,7 +274,7 @@ function text_summary($text, $format = NULL, $size = NULL) {
 
   // Retrieve the filters of the specified text format, if any.
   if (isset($format)) {
-    $filters = filter_list_format($format);
+    $filters = entity_load('filter_format', $format)->filters();
     // If the specified format does not exist, return nothing. $text is already
     // filtered text, but the remainder of this function will not be able to
     // ensure a sane and secure summary.
