Index: logintoboggan.admin.inc
===================================================================
--- logintoboggan.admin.inc	(revision 4439)
+++ logintoboggan.admin.inc	(working copy)
@@ -130,26 +130,25 @@
     '#tree' => FALSE,
   );
 
-  $site403 = variable_get('site_403', '');
-  if ($site403 == '') {
-    $disabled = $default = '0';
-  }
-  elseif ($site403 == 'toboggan/denied') {
-    $disabled = '0';
-    $default = 'toboggan/denied';
-  }
-  else {
-    $disabled = $default = $site403;
-  }
-  $options = array($disabled => $_disabled, 'toboggan/denied' => $_enabled);
+  $options = array(
+    0 => $_disabled, 
+    'user/login' => t('Login'),
+    'user/register' => t('Register'),
+  );
 
-  $form['other']['logintoboggan_site_403'] = array(
+  $form['other']['logintoboggan_anon_403'] = array(
     '#type' => 'radios',
-    '#title' => t('Present login form on access denied (403)'),
+    '#title' => t('Redirect anonymous to login or redirect form on access denied (403)'),
     '#options' => $options,
-    '#default_value' => $default,
-    '#description' => t('Anonymous users will be presented with a login form along with an access denied message.')
+    '#default_value' => variable_get('logintoboggan_anon_403', ''),
+    '#description' => t('Anonymous users will be redirected to login or redirect form.')
   );
+  $form['other']['logintoboggan_auth_403'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Redirect authenticated users on access denied (403)'),
+    '#default_value' => variable_get('logintoboggan_auth_403', ''),
+    '#description' => t('Authenticated users will be redirected to this page on access denied.')
+  );
   $form['other']['logintoboggan_login_successful_message'] = array(
     '#type' => 'radios',
     '#title' => t('Display login successful message'),
@@ -195,9 +194,13 @@
   unset($form_state['values']['logintoboggan_user_email_verification']);
 
   // Site 403 setting.
-  $site_403 = $form_state['values']['logintoboggan_site_403'] == '0' ? '' : $form_state['values']['logintoboggan_site_403'];
-  variable_set('site_403', $site_403);
-  unset($form_state['values']['logintoboggan_site_403']);
+  $anon_403 = &$form_state['values']['logintoboggan_anon_403'];
+  if($anon_403 == '0'){
+  	$anon_403 ='';
+  }
+  if($anon_403){
+  	variable_set('site_403', 'toboggan/denied');
+  }
 
   // If the unified login setting has been changed, we need to rebuild the
   // menu cache.
Index: logintoboggan.install
===================================================================
--- logintoboggan.install	(revision 4439)
+++ logintoboggan.install	(working copy)
@@ -55,6 +55,8 @@
     'logintoboggan_immediate_login_on_register',
     'logintoboggan_override_destination_parameter',
     'logintoboggan_denied_remove_sidebars',
+  	'logintoboggan_anon_403',
+  	'logintoboggan_auth_403',  		
   );
   foreach ($variables as $variable) {
   	variable_del($variable);
Index: logintoboggan.module
===================================================================
--- logintoboggan.module	(revision 4439)
+++ logintoboggan.module	(working copy)
@@ -415,24 +415,7 @@
   }
 }
 
-/**
- * Implement hook_page_alter().
- */
-function logintoboggan_page_alter(&$page) {
-  // Remove blocks on access denied pages.
-  if (isset($page['#logintoboggan_denied'])) {
-    drupal_set_message(t('Access denied. You may need to login below or register to access this page.'), 'error');
-    // Allow overriding the removal of the sidebars, since there's no way to
-    // override this in the theme.
-    if (variable_get('logintoboggan_denied_remove_sidebars', TRUE)) {
-      unset($page['sidebar_first'], $page['sidebar_second']);
-    }
-  }
-}
 
-
-
-
 /**
  * Custom submit function for user registration form
  *
@@ -927,20 +910,20 @@
 }
 
 function logintoboggan_denied() {
-  if ($GLOBALS['user']->uid == 0) {
-    drupal_set_title(t('Access Denied / User log in'));
-    // Output the user login form.
-    $output = logintoboggan_get_authentication_form('login');
-    drupal_set_page_content($output);
-    // Return page attributes, hide blocks.
-    $page = element_info('page');
-    $page['#logintoboggan_denied'] = TRUE;
+  $original_path = $_GET['destination'];
+  unset($_GET['destination']);
+  if ($GLOBALS['user']->uid == 0
+      && ($path = drupal_get_normal_path(variable_get('logintoboggan_anon_403', '')))
+      && ($path != $original_path)) {
+    drupal_goto($path, array('query'=>array('destination'=>$original_path)));
+  } elseif(($path = drupal_get_normal_path(variable_get('logintoboggan_auth_403', '')))
+      && ($path != $original_path)) {
+    drupal_goto($path, array('query'=>array('destination'=>$original_path)));
+  } else {
+    // Standard 403 handler.
+    drupal_set_title(t('Access denied'));
+    $return = t('You are not authorized to access this page.');
   }
-  else {
-    drupal_set_title(t('Access Denied'));
-    $page = theme('lt_access_denied');
-  }
-  return $page;
 }
 
 /**
