diff --git a/r4032login.module b/r4032login.module
index eabd913..7dd33ae 100644
--- a/r4032login.module
+++ b/r4032login.module
@@ -68,29 +68,22 @@ function r4032login_form_system_site_information_settings_alter(&$form, &$form_s
   $form['error_page']['r4032login_default_redirect_code'] = array(
     '#type' => 'select',
     '#weight' => 9,
-    '#title' => t("HTTP default redirect code"),
-    '#description' => t('The redirect code to send by default. 301 responses may be cached by browsers and proxies.'),
+    '#title' => t("HTTP redirect code"),
+    '#description' => t('The redirect code to send. 301 responses may be cached by browsers and proxies, so 302 is normally the correct choice.'),
     '#options' => $options,
     '#default_value' => variable_get('r4032login_default_redirect_code', 302),
   );
   $form['error_page']['matching_paths'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Redirect code for matching pages'),
+    '#title' => t('Skip redirect for matching pages'),
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
     '#weight' => 10,
   );
-  $form['error_page']['matching_paths']['r4032login_match_redirect_code'] = array(
-    '#type' => 'select',
-    '#title' => t("HTTP redirect code to use for matching pages"),
-    '#description' => t('The redirect code to send for paths that match. 301 responses may be cached by browsers and proxies.'),
-    '#options' => $options,
-    '#default_value' => variable_get('r4032login_match_redirect_code', 301),
-  );
-  $form['error_page']['matching_paths']['r4032login_match_redirect_pages'] = array(
+  $form['error_page']['matching_paths']['r4032login_match_noredirect_pages'] = array(
     '#type' => 'textarea',
     '#title' => '<span class="element-invisible">' . t('Only the listed pages') . '</span>',
-    '#default_value' => variable_get('r4032login_match_redirect_pages', ''),
+    '#default_value' => variable_get('r4032login_match_redirect_pages', 'node/*'),
     '#description' => t("Specify pages by using their paths. Enter one path per line. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page.", array('%blog' => 'blog', '%blog-wildcard' => 'blog/*', '%front' => '<front>')),
   );
   return system_settings_form($form);
@@ -117,14 +110,8 @@ function r4032login_theme() {
 function r4032login_redirect() {
   global $user, $language;
   if (user_is_anonymous()) {
-    if (variable_get('r4032login_display_denied_message', TRUE)) {
-      $message = variable_get('r4032login_access_denied_message', t('Access denied. You must log in to view this page.'));
-      drupal_set_message($message, 'error');
-    }
-    // using drupal_goto() with destination set causes a recursive redirect loop
-    $login_path = variable_get('r4032login_user_login_path', 'user/login');
     $page_match = FALSE;
-    $pages = variable_get('r4032login_match_redirect_pages', '');
+    $pages = variable_get('r4032login_match_noredirect_pages', 'node/*');
     if ($pages) {
       // When on an access denied page, Drupal stores the original path in
       // $_GET['destination'] in drupal_deliver_html_page().
@@ -135,9 +122,19 @@ function r4032login_redirect() {
       if ($path != $_GET['destination']) {
         $page_match = $page_match || drupal_match_path($_GET['destination'], $pages);
       }
-
     }
-    $code = $page_match ? variable_get('r4032login_match_redirect_code', 301) : variable_get('r4032login_default_redirect_code', 302);
+    if ($page_match) {
+      // Display the default access denied page.
+      return theme('r4032login_denied');
+    }
+    // Handle redirection to the login form.
+    if (variable_get('r4032login_display_denied_message', TRUE)) {
+      $message = variable_get('r4032login_access_denied_message', t('Access denied. You must log in to view this page.'));
+      drupal_set_message($message, 'error');
+    }
+    // using drupal_goto() with destination set causes a recursive redirect loop
+    $login_path = variable_get('r4032login_user_login_path', 'user/login');
+    $code = variable_get('r4032login_default_redirect_code', 302);
     // The code in drupal_get_destination() doesn't preserve any query string
     // on 403 pages, so reproduce the part we want here.
     $path = $_GET['destination'];
