Index: plus1.module
===================================================================
--- plus1.module	(revision 1245)
+++ plus1.module	(working copy)
@@ -78,6 +78,18 @@
     '#default_value' => variable_get('plus1_in_full_view', 1),
   );
 
+  $form['plus1_misc_fieldset'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Miscellaneous settings'),
+    '#description' => t(''),
+  );
+
+  $form['plus1_misc']['plus1_no_anon_session'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Check if you want to allow anonymous voters, with no session, to vote.  They will still be limited by IP.'),
+    '#default_value' => variable_get('plus1_no_anon_session', 1),
+  );
+
   $form['plus1_text'] = array(
     '#type' => 'fieldset',
     '#title' => t('Text settings'),
@@ -89,7 +101,7 @@
     '#default_value' => variable_get('plus1_you_voted', t('You voted')),
     '#description' => t('Enter, for example, <em>Dugg</em>, <em>You voted</em>, or <em>Voted</em>.'),
   );
-  
+
   $form['plus1_weight'] = array(
     '#type' => 'fieldset',
     '#title' => t('Weight settings'),
@@ -119,7 +131,9 @@
 function plus1_vote($nid) {
   global $user;
   $json = isset($_GET['json']) ? 'json' : NULL;
-  if (!drupal_valid_token($_GET['token'], $nid)) {
+
+  $ok_no_anon_session = (1 == variable_get('plus1_no_anon_session'));
+  if (!drupal_valid_token($_GET['token'], $nid, $ok_no_anon_session)) {
     watchdog('Plus1', 'Voting form error: Invalid token.');
     return drupal_access_denied();
   }
@@ -314,4 +328,4 @@
   $output .= '</div>';
   $output .= '</div>';
   return $output;
-}
\ No newline at end of file
+}
