diff -Naur a/decounter/decounter.install b/decounter/decounter.install
--- a/decounter/decounter.install	2010-01-20 02:49:00.000000000 +1000
+++ b/decounter/decounter.install	2012-02-22 16:09:02.000000000 +1000
@@ -7,6 +7,8 @@
 function decounter_uninstall() {
   variable_del('decounter_roles');
   variable_del('decounter_exclude_admin');
+  variable_del('decounter_exclude_crawlers');
+  variable_del('decounter_exclude_access_log');
 }
 
diff -Naur a/decounter/decounter.module b/decounter/decounter.module
--- a/decounter/decounter.module	2010-01-20 02:49:00.000000000 +1000
+++ b/decounter/decounter.module	2012-02-23 12:59:56.000000000 +1000
@@ -28,6 +28,28 @@
   '#weight' => 10,
   );
 
+  if (module_exists('browscap')) {
+    $form['decounter']['decounter_exclude_crawlers'] = array(
+    '#type' => 'checkbox',
+    '#title' => 'Exclude Web Crawlers',
+    '#description' => 'Check to exclude web crawlers, as reported by browscap, from node views counting.',
+    '#default_value' => variable_get('decounter_exclude_crawlers', 0),
+    '#multiple' => TRUE,
+    '#weight' => 11,
+    );
+  }
+ 
+  if (variable_get('statistics_enable_access_log')) {
+    $form['decounter']['decounter_exclude_access_log'] = array(
+    '#type' => 'checkbox',
+    '#title' => 'Decount Access Log',
+    '#description' => 'Check to exclude from the access log.',
+    '#default_value' => variable_get('decounter_exclude_access_log', 0),
+    '#multiple' => TRUE,
+    '#weight' => 12,
+    );
+  }
+
   return system_settings_form($form);  
 }
 
@@ -39,7 +61,7 @@
 function decounter_menu() {
   $items = array();
   
-  $items['admin/settings/decounter'] = array(
+  $items['admin/config/system/decounter'] = array(
     'title' => 'Decounter',
     'description' => 'Administer Decounter module.',
     'page callback' => 'drupal_get_form',
@@ -60,7 +82,8 @@
   
   $active = variable_get('statistics_count_content_views', 0);
   $exclude_roles = variable_get('decounter_roles', array());
-  $exclude_admin = variable_get('decounter_exclude_admin', 1);
+  $exclude_admin = (variable_get('decounter_exclude_admin', 1)  && $user->uid == 1) ? 1 : 0;
+
   $active_role = 0;
   
   foreach ($exclude_roles as $key => $value) {
@@ -68,10 +91,21 @@
       $active_role = 1;
     }
   }
+ 
+  // Check if the user's browser is a crawler.
+  $is_crawler = 0;
+  if (!$user->uid && module_exists('browscap') && function_exists('browscap_get_browser') && variable_get('decounter_exclude_crawlers', 1)) {
+    drupal_load('module', 'browscap');
+    $browser = browscap_get_browser();
+    if (!empty($browser['crawler'])) $is_crawler = 1;
+  }
   
-  if ($active && (arg(0) == 'node') && (is_numeric(arg(1))) && (arg(2) == '') && ($exclude_admin OR $active_role)) {
-    db_update('node_counter')->condition('nid', arg(1))->fields(array('daycount' => 'daycount - 1', 'totalcount' => 'totalcount - 1'))->execute();
+  if ($active && (arg(0) == 'node') && (is_numeric(arg(1))) && (arg(2) == '') && ($exclude_admin OR $active_role OR $is_crawler)) {
+    db_update('node_counter')->condition('nid', arg(1))->expression('daycount', 'daycount - :one', array(':one' => 1))->expression('totalcount', 'totalcount - :one', array(':one' => 1))->execute();
+    if (variable_get('statistics_enable_access_log') && variable_get('decounter_exclude_access_log')) {
+      db_delete('accesslog')->condition('sid', session_id())->execute();
+    }
   }
 }
