diff --git a/global_filter.blocks.inc b/global_filter.blocks.inc
index 2d1fc53..782f30b 100644
--- a/global_filter.blocks.inc
+++ b/global_filter.blocks.inc
@@ -332,14 +332,24 @@ function _global_filter_configure_form($block_number, $filter_key, $expand_field
  */
 function global_filter_block_view($delta) {
   $block = array();
-  $usable_views = global_filter_get_view_names();
-  $usable_fields = global_filter_get_usable_fields();
-
+  // Ignore non global filter blocks.
+  if (strpos($delta, 'global_filter_') !== 0) {
+    return $block;
+  }
+  static $usable_views;
+  static $usable_fields;
   $block_number = empty($delta) ? 1 : _global_filter_number($delta);
 
   // Set the block title, aka 'subject'.
   $block['subject'] = '';
   foreach (global_filter_get_filters_for_block($block_number) as $filter) {
+    // Lazy fill the usable values.
+    if ($filter['uses_view'] && !isset($usable_views)) {
+      $usable_views = global_filter_get_view_names();
+    }
+    elseif (!isset($usable_fields)) {
+      $usable_fields = global_filter_get_usable_fields();
+    }
     $filter_name = $filter['name'];
     if ($filter['uses_view'] && isset($usable_views[$filter_name])) {
       $block['subject'] .= drupal_substr($usable_views[$filter_name], 6);
@@ -357,6 +367,7 @@ function global_filter_block_view($delta) {
     }
     $block['subject'] .= ' ';
   }
+
   // With the block title set, now add all the filters for this block.
   $block['content'] = drupal_get_form($delta);
 
@@ -449,10 +460,15 @@ function global_filter_get_field_labels($field_type = NULL) {
           $field_names[GLOBAL_FILTER_VIEWS_TID_DEPTH] = $content_prefix . ': ' . t('Has taxonomy term ID with depth');
         }
         foreach ($bundle_instances as $field_name => $instance) {
-          $field = field_info_field($field_name);
-          if (empty($field_type) || $field_type == $field['type'] || ($field_type == 'list' && strpos($field['type'], 'list') === 0)) {
+          if (empty($field_type)) {
             $field_names[$field_name] = $field_prefix . ': ' . $instance['label'] . " ($field_name)";
           }
+          else {
+            $field = field_info_field($field_name);
+            if ($field_type == $field['type'] || ($field_type == 'list' && strpos($field['type'], 'list') === 0)) {
+              $field_names[$field_name] = $field_prefix . ': ' . $instance['label'] . " ($field_name)";
+            }
+          }
         }
       }
     }
