diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc
index a6ea1b5..a4195d2 100644
--- a/modules/node/node.admin.inc
+++ b/modules/node/node.admin.inc
@@ -106,6 +106,7 @@ function node_filters() {
       ) + $languages,
     );
   }
+  drupal_alter('node_filters', $filter);
   return $filters;
 }
 
@@ -121,10 +122,6 @@ function node_build_filter_query(SelectQueryInterface $query) {
   foreach ($filter_data as $index => $filter) {
     list($key, $value) = $filter;
     switch ($key) {
-      case 'term':
-        $alias = $query->join('taxonomy_index', 'ti', "n.nid = %alias.nid");
-        $query->condition($alias . '.tid', $value);
-        break;
       case 'status':
         // Note: no exploitable hole as $key/$value have already been checked when submitted
         list($key, $value) = explode('-', $value, 2);
@@ -134,6 +131,7 @@ function node_build_filter_query(SelectQueryInterface $query) {
         break;
     }
   }
+  drupal_alter('node_filter_query', $query);
 }
 
 /**
@@ -151,12 +149,7 @@ function node_filter_form() {
   );
   foreach ($session as $filter) {
     list($type, $value) = $filter;
-    if ($type == 'term') {
-      // Load term name from DB rather than search and parse options array.
-      $value = module_invoke('taxonomy', 'term_load', $value);
-      $value = $value->name;
-    }
-    elseif ($type == 'language') {
+    if ($type == 'language') {
       $value = $value == LANGUAGE_NONE ? t('Language neutral') : module_invoke('locale', 'language_name', $value);
     }
     else {
