Index: modules/filter/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v retrieving revision 1.303 diff -u -p -r1.303 filter.module --- modules/filter/filter.module 30 Nov 2009 13:55:55 -0000 1.303 +++ modules/filter/filter.module 1 Dec 2009 02:21:09 -0000 @@ -556,15 +556,18 @@ function filter_list_format($format_id) $filters = &drupal_static(__FUNCTION__, array()); $filter_info = filter_get_filters(); + if (!isset($filters['all'])) { + $result = db_query('SELECT * FROM {filter} ORDER BY weight, module, name'); + foreach ($result as $record) { + $filters['all'][$record->format][$record->name] = $record; + } + } + if (!isset($filters[$format_id])) { $format_filters = array(); - $query = db_select('filter', 'filter') - ->fields('filter') - ->condition('format', $format_id) - ->orderBy('weight') - ->orderBy('module') - ->orderBy('name'); - $result = $query->execute()->fetchAllAssoc('name'); + // filter_list_format() is called with the non-existing $filter_id of 0 when + // creating a new filter. When that occurs, return an empty array. + $result = isset($filters['all'][$format_id]) ? $filters['all'][$format_id] : array(); foreach ($result as $name => $filter) { if (isset($filter_info[$name])) { $filter->title = $filter_info[$name]['title'];