diff --git a/better_statistics.api.php b/better_statistics.api.php
index d824fe2..0c8e488 100644
--- a/better_statistics.api.php
+++ b/better_statistics.api.php
@@ -174,5 +174,24 @@ function hook_better_statistics_fields() {
 }
 
 /**
+ * Tell Statistics API to skip data collection on this request. That is to say,
+ * use this to declare you DO NOT want statistics collected under your specific
+ * circumstances.
+ *
+ * @return
+ *   A boolean TRUE if statistics should NOT be collected on this request.
+ *   Otherwise, FALSE.
+ */
+function hook_better_statistics_skip() {
+  // Never record statistics for user 1.
+  global $user;
+  if ($user->uid == 1) {
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
  * @}
  */
diff --git a/better_statistics.module b/better_statistics.module
index fb45409..7d2987a 100644
--- a/better_statistics.module
+++ b/better_statistics.module
@@ -72,25 +72,41 @@ function better_statistics_ctools_plugin_api_hook_name() {
 function better_statistics_exit() {
   // If statistics access log is set to run, run our code.
   if (variable_get('statistics_enable_access_log', 0)) {
-    // @see statistics_exit()
-    drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
-    include_once DRUPAL_ROOT . '/includes/unicode.inc';
+    // Load all relevant module.statistics.inc files for hook invocations.
+    better_statistics_load_active_incs();
 
-    // Get all declared fields and their computed values.
-    $fields = better_statistics_get_fields_data();
-
-    // Now that we have data, try to insert it.
-    try {
-      db_insert('accesslog')->fields($fields)->execute();
+    // Test if Statistics should be collected on this request.
+    $skip = FALSE;
+    foreach (module_implements('better_statistics_skip') as $module) {
+      $skip_test = $module . '_' . 'better_statistics_skip';
+      if ($skip_test()) {
+        $skip = TRUE;
+        break;
+      }
     }
-    catch (Exception $e) {
-      // At least log core fields.
-      $defaults = better_statistics_get_default_fields();
-      $core_fields = array_intersect_key($fields, $defaults);
-      db_insert('accesslog')->fields($core_fields)->execute();
 
-      // Log the error.
-      watchdog('better statistics', 'There was an error collecting statistics data:<br /><br />@error', array('@error' => $e->getMessage()), WATCHDOG_ERROR);
+    // Don't collect statistics if we're told to skip.
+    if (!$skip) {
+      // @see statistics_exit()
+      drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
+      include_once DRUPAL_ROOT . '/includes/unicode.inc';
+
+      // Get all declared fields and their computed values.
+      $fields = better_statistics_get_fields_data();
+
+      // Now that we have data, try to insert it.
+      try {
+        db_insert('accesslog')->fields($fields)->execute();
+      }
+      catch (Exception $e) {
+        // At least log core fields.
+        $defaults = better_statistics_get_default_fields();
+        $core_fields = array_intersect_key($fields, $defaults);
+        db_insert('accesslog')->fields($core_fields)->execute();
+
+        // Log the error.
+        watchdog('better statistics', 'There was an error collecting statistics data:<br /><br />@error', array('@error' => $e->getMessage()), WATCHDOG_ERROR);
+      }
     }
   }
 
@@ -192,22 +208,14 @@ function better_statistics_get_default_fields() {
  * Returns data for all valid, declared fields in preparation for DB insertion.
  */
 function better_statistics_get_fields_data() {
-  // Include this module's API file because of how core fields are implemented.
-  require_once(dirname(__FILE__) . '/better_statistics.statistics.inc');
+  // Ensure all module.statistics.inc files are loaded.
+  better_statistics_load_active_incs();
 
   $fields = variable_get('better_statistics_fields', better_statistics_get_default_fields());
   $field_data = array();
 
   // Loop through all custom fields.
   foreach ($fields as $field => $data) {
-    // If there's an inc file and it hasn't been loaded yet, load it.
-    if (isset($data['_file']) && !isset($already[$data['_file']])) {
-      if (file_exists(DRUPAL_ROOT . '/' . $data['_file'])) {
-        require_once(DRUPAL_ROOT . '/' . $data['_file']);
-        $already[$data['_file']] = TRUE;
-      }
-    }
-
     // Only insert data into this field if there's a callback to get data.
     if (is_callable($data['callback'])) {
       $field_data[$field] = $data['callback']($field);
@@ -216,3 +224,31 @@ function better_statistics_get_fields_data() {
 
   return $field_data;
 }
+
+
+/**
+ * Loads module.statistics.inc files for all active fields.
+ */
+function better_statistics_load_active_incs() {
+  // Prevent this function from loading it multiple times.
+  static $loaded;
+
+  if (empty($loaded)) {
+    $loaded = TRUE;
+
+    // Include this module's API file because of how core fields are implemented.
+    require_once(dirname(__FILE__) . '/better_statistics.statistics.inc');
+
+    $fields = variable_get('better_statistics_fields', better_statistics_get_default_fields());
+
+    // Loop through each declaring field and require associated files.
+    foreach ($fields as $field => $data) {
+      // If there's an inc file and it hasn't been loaded yet, load it.
+      if (isset($data['_file'])) {
+        if (file_exists(DRUPAL_ROOT . '/' . $data['_file'])) {
+          require_once(DRUPAL_ROOT . '/' . $data['_file']);
+        }
+      }
+    }
+  }
+}
