--- front_page.module.orig	2010-01-17 23:34:51.000000000 +0100
+++ front_page.module	2010-01-17 23:35:12.000000000 +0100
@@ -99,6 +99,7 @@ function front_page_admin() {
       'themed' => t('themed'),
       'full' => t('full'),
       'redirect' => t('redirect'),
+      'ignore' => t('ignore'),
     );
 
     // Set the description common for all roles.
@@ -108,6 +109,8 @@ function front_page_admin() {
       <dd>'. t('allows you to have a completely different layout, style sheet etc.') .'</dd></dl>';
     $description .= '<dl><dt>'. t('redirect') .'</dt>
       <dd>'. t('will automatically redirect visitors already logged in to a specific page specified in the REDIRECT TO box.') .'</dd></dl>';
+    $description .= '<dl><dt>'. t('ignore') .'</dt>
+      <dd>'. t('will ignore this role when choosing the front page.') .'</dd></dl>';
 
     // Set the options that varies from role to role.
     switch ($role) {
@@ -335,6 +338,11 @@ function front_page() {
   /* this is where the front page by role stuff happens  */
   if ($user->uid) { //if the user is logged in and the site has more than 2 roles setup
     foreach ($roles as $role_id => $role_name) { // run through each role type starting at the most recent working backwards
+      // don't do anything if front type for that role is set to "ignore" 
+      if (variable_get('front_'. $role_id .'_type', 'drupal') == 'ignore') {
+        continue;
+      }
+      
       // if the current visitor has a role type that matches and if the front page setting for that role type is not empty.
       if (array_key_exists($role_id, $user->roles)) {
         if ((variable_get('special_notice_text', '') != '') && ($user->access < $check_time)) {
