--- premium.module 2010-12-17 09:13:44.000000000 +0200
+++ premium.module      2010-12-17 09:14:22.000000000 +0200
@@ -56,6 +56,9 @@ function premium_nodeapi(&$node, $op, $t
       
     case 'view':
       if (!$node->premium_access) {
-        $node->content['body']['#value'] = theme('premium_body', $node);
+        //don't redirect if we're indexing content via cron
+        $semaphore = variable_get('cron_semaphore', FALSE);
+        if ($semaphore) return;
+        $redirect_url = variable_get('premium_redirect_url', FALSE);
+        if ($redirect_url) {
+          $premium_message = variable_get('premium_message', '');
+          $override_message = module_invoke_all('premium_message', $premium_message, $node);
+          if ($override_message) {
+            $premium_message = $override_message;
+          }
+          drupal_set_message($premium_message);
+          drupal_goto($redirect_url, 'destination='. url('node/'. $node->nid));  
+        } 
+        else {
+          $node->content['body']['#value'] = theme('premium_body', $node);
+        }
       }
       return;
   }
@@ -184,6 +196,13 @@
     '#description' => t('Update all existing nodes of the types selected above with the new premium settings.'),
   );
   
+  $form['premium_redirect_url'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Premium Redirect Url'),
+    '#default_value' => variable_get('premium_redirect_url', ''),
+    '#description' => ('If set, Premium module will redirect to the url specified.  If Premium body text is set, that message will be shown in a message on the page being redirected to.  The redirect page is also passed a destination -- useful if you are redirecting to a login page.')
+  );
+
   $form['premium_message'] = array(
     '#type'          => 'textarea', 
     '#title'         => t('Premium body text'), 
