--- statistics_advanced/statistics_advanced.module.orig	2008-11-03 19:57:52.000000000 -0800
+++ statistics_advanced/statistics_advanced.module	2008-12-16 23:31:51.000000000 -0800
@@ -129,7 +129,7 @@
   drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
   $is_node_visit = (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == '' && variable_get('statistics_count_content_views', 0));
 
-  if ($is_node_visit && statistics_advanced_var('statistics_advanced_ignore_repeat_views')) {
+  if ($is_node_visit && statistics_advanced_var('statistics_advanced_ignore_repeat_views', TRUE)) {
     $user_uid = $user->uid;
 
     if (!$user_uid && variable_get('statistics_enable_access_log', 0)) {
@@ -146,13 +146,13 @@
   }
 
   // Check if user's access log entry should be ignored based on user role.
-  $ignored_roles = statistics_advanced_var('statistics_advanced_ignore_roles');
+  $ignored_roles = statistics_advanced_var('statistics_advanced_ignore_roles', TRUE);
   if (!empty($ignored_roles) && array_intersect($ignored_roles, array_keys($user->roles))) {
     _statistics_advanced_ignore('accesslog', TRUE);
   }
 
   // Check if the user's browser is a crawler.
-  if (!$user->uid && statistics_advanced_var('statistics_advanced_ignore_crawlers') && module_exists('browscap')) {
+  if (!$user->uid && statistics_advanced_var('statistics_advanced_ignore_crawlers', TRUE) && module_exists('browscap')) {
     drupal_load('module', 'browscap');
     $browser = browscap_get_browser();
     if (isset($browser['crawler']) && $browser['crawler']) {
@@ -202,26 +202,31 @@
 /**
  * Internal default variables for statistics_advanced_variable_get().
  */
-function statistics_advanced_variables() {
-  drupal_load('module', 'node');
+function statistics_advanced_variables($boot) {
+  if (!$boot) {
+    drupal_load('module', 'node');
+  }
   return array(
     'statistics_advanced_ignore_roles' => array(),
     'statistics_advanced_ignore_crawlers' => 0,
     'statistics_advanced_ignore_repeat_views' => 1,
-    'statistics_advanced_counter_node_types' => array_keys(node_get_types('names')),
+    'statistics_advanced_counter_node_types' => ($boot ? array() : array_keys(node_get_types('names'))),
   );
 }
 
 /**
  * Internal implementation of variable_get().
  */
-function statistics_advanced_var($name) {
+function statistics_advanced_var($name, $boot = FALSE) {
   static $defaults = NULL;
   if (!isset($defaults)) {
-    $defaults = statistics_advanced_variables();
+    $def = statistics_advanced_variables($boot);
   }
-  if (!isset($defaults[$name])) {
+  if (!$boot) {
+    $defaults = $def;
+  }
+  if (!isset($def[$name])) {
     watchdog('statistics_advanced', 'Default variable for %variable not found.', array('%variable' => $name));
   }
-  return variable_get($name, isset($defaults[$name]) ? $defaults[$name] : NULL);
+  return variable_get($name, isset($def[$name]) ? $def[$name] : NULL);
 }
