diff --git a/global_filter.blocks.inc b/global_filter.blocks.inc
index 7ce5576..2d1fc53 100644
--- a/global_filter.blocks.inc
+++ b/global_filter.blocks.inc
@@ -327,47 +327,40 @@ function _global_filter_configure_form($block_number, $filter_key, $expand_field
 /**
  * Implements hook_block_view().
  *
- * $param $delta, index into the array $blocks defined in
+ * @param $delta, index into the array $blocks defined in
  *   global_filter_block_info)(), e.g., 'global_filter_2'
  */
 function global_filter_block_view($delta) {
-  // In order to make sure that that the filter settings submitted via this
-  // little block are received by the depending views before they're executed
-  // this block may end up being requested twice: once in global_filter_init()
-  // and once whenever core feels like it. Hence the caching.
-  $blocks = &drupal_static(__FUNCTION__, array());
+  $block = array();
+  $usable_views = global_filter_get_view_names();
+  $usable_fields = global_filter_get_usable_fields();
 
-  if (empty($blocks[$delta])) {
+  $block_number = empty($delta) ? 1 : _global_filter_number($delta);
 
-    $usable_views = global_filter_get_view_names();
-    $usable_fields = global_filter_get_usable_fields();
-
-    $block_number = empty($delta) ? 1 : _global_filter_number($delta);
-
-    // Set the block title, aka 'subject'.
-    $blocks[$delta]['subject'] = '';
-    foreach (global_filter_get_filters_for_block($block_number) as $filter) {
-      $filter_name = $filter['name'];
-      if ($filter['uses_view'] && isset($usable_views[$filter_name])) {
-        $blocks[$delta]['subject'] .= drupal_substr($usable_views[$filter_name], 6);
+  // Set the block title, aka 'subject'.
+  $block['subject'] = '';
+  foreach (global_filter_get_filters_for_block($block_number) as $filter) {
+    $filter_name = $filter['name'];
+    if ($filter['uses_view'] && isset($usable_views[$filter_name])) {
+      $block['subject'] .= drupal_substr($usable_views[$filter_name], 6);
+    }
+    elseif (isset($usable_fields[$filter_name])) {
+      $label = $usable_fields[$filter_name];
+      $pos_colon = strpos($label, ':');
+      $pos_bracket = strrpos($label, '(');
+      if ($pos_bracket) {
+        $block['subject'] .= drupal_substr($label, $pos_colon + 2, $pos_bracket > $pos_colon ? $pos_bracket - $pos_colon - 3 : NULL);
       }
-      elseif (isset($usable_fields[$filter_name])) {
-        $label = $usable_fields[$filter_name];
-        $pos_colon = strpos($label, ':');
-        $pos_bracket = strrpos($label, '(');
-        if ($pos_bracket) {
-          $blocks[$delta]['subject'] .= drupal_substr($label, $pos_colon + 2, $pos_bracket > $pos_colon ? $pos_bracket - $pos_colon - 3 : NULL);
-        }
-        else {
-          $blocks[$delta]['subject'] .= drupal_substr($label, $pos_colon ? $pos_colon + 2 : 0);
-        }
+      else {
+        $block['subject'] .= drupal_substr($label, $pos_colon ? $pos_colon + 2 : 0);
       }
-      $blocks[$delta]['subject'] .= ' ';
     }
-    // With the block title set, now add all the filters for this block.
-    $blocks[$delta]['content'] = drupal_get_form($delta);
+    $block['subject'] .= ' ';
   }
-  return $blocks[$delta];
+  // With the block title set, now add all the filters for this block.
+  $block['content'] = drupal_get_form($delta);
+
+  return $block;
 }
 
 /**
@@ -516,4 +509,4 @@ function global_filter_get_filters_for_block($block_number) {
 function _global_filter_number($string) {
   $from_underscore = strrchr($string, '_');
   return $from_underscore ? drupal_substr($from_underscore, 1) : FALSE;
-}
\ No newline at end of file
+}
diff --git a/global_filter.module b/global_filter.module
index c449c85..272f680 100755
--- a/global_filter.module
+++ b/global_filter.module
@@ -76,22 +76,6 @@ function global_filter_init() {
       }
     }
   }
-  // Now that we've dealt with the special cases, make sure that filter blocks
-  // and session data are available before anything else on the page needs
-  // these.
-  $active_blocks = array();
-  $visible_filters_only = global_filter_get_module_parameter('visible_filters_only', FALSE);
-  $active_filters = global_filter_active_filter_names($visible_filters_only);
-  foreach ($active_filters as $key => $name) {
-    $block_id = global_filter_get_parameter($key, 'block');
-    $active_blocks[$block_id][] = $key;
-  }
-  // Once rendered each block is cached by global_filter_block_view(). So there
-  // is no CPU overhead in rendering a block here and then have
-  // global_filter_block_view() called once more by core at a later point.
-  foreach ($active_blocks as $block_id => $keys) {
-    global_filter_block_view($block_id);
-  }
 
   // Auto-cycle filter.
   if (global_filter_get_module_parameter('view_autocycle_every_click')) {
@@ -392,7 +376,7 @@ function global_filter_remove_default_filter_from_views($name) {
           $full_name = $name . '_tid';
         }
         if (!empty($full_name) && !empty($arguments[$full_name]['default_argument_type']) &&
-            strpos($arguments[$full_name]['default_argument_type'], 'global_filter') !== FALSE) {
+          strpos($arguments[$full_name]['default_argument_type'], 'global_filter') !== FALSE) {
           unset($view->display[$display_name]->display_options['arguments'][$full_name]);
           drupal_set_message(t('As the global filter %filter was deleted, it was removed as the contextual default from the view %view.', array(
             '%filter' => $name,
