diff --git a/apachesolr.module b/apachesolr.module
index 2e2b000..023df25 100644
--- a/apachesolr.module
+++ b/apachesolr.module
@@ -2167,7 +2167,7 @@ function theme_apachesolr_settings_title($vars) {
       'Settings for: <a href="@url">@environment</a>',
       array('@url' => $url, '@environment' => $environment['name'])
     );
-    $output .= '</h3>';
+    $output .= "</h3>\n";
   }
 
   return $output;
diff --git a/apachesolr_search.admin.inc b/apachesolr_search.admin.inc
index 2536501..6447ebe 100644
--- a/apachesolr_search.admin.inc
+++ b/apachesolr_search.admin.inc
@@ -6,7 +6,35 @@
  */
 
 /**
- *
+ * Helper function for empty search configuration.
+ */
+function _apachesolr_search_browse_form($default_value) {
+  $description = t('This is what is shown when the user enters an empty search, or removes all filters from an active search.') . ' ';
+  if (!module_exists('facetapi')) {
+    $description .= t('<strong>Filters will not be shown until you enable Facet API module.</strong>');
+  }
+  else {
+    $description .= t('Remember to enable filters on the <a href="!filterslink">enabled filters page</a> and assign blocks to regions on the <a href="!blocklink">block settings page</a>', array(
+      '!filterslink' => url('admin/config/search/apachesolr/enabled-filters'),
+      '!blocklink' => url('admin/structure/block'),
+    ));
+  }
+  return array(
+    '#type' => 'radios',
+    '#title' => t('Behavior on empty search'),
+    '#options' => array(
+      'none'    => t("Show search box"),
+      'browse'  => t("Show search box and enabled filters' blocks under the search box"),
+      'blocks'  => t("Show search box and enabled filters' blocks in their configured regions"),
+      'results' => t("Show search box, enabled filters' blocks in their configured regions and first page of all available results"),
+    ),
+    '#default_value' => $default_value,
+    '#description' => $description,
+  );
+}
+
+/**
+ * Menu callback for the overview page showing custom search pages.
  */
 function apachesolr_search_page_list_page() {
   $build = array();
@@ -51,7 +79,7 @@ function apachesolr_search_page_list_page() {
     // Operations
     $row[] = array('data' => l(t('Edit'), 'admin/config/search/apachesolr/search-pages/' . $record->page_id . '/edit'));
     $row[] = array('data' => l(t('Delete'), 'admin/config/search/apachesolr/search-pages/' . $record->page_id . '/delete'));
-      
+
     $rows[] = $row;
   }
 
@@ -66,7 +94,7 @@ function apachesolr_search_page_list_page() {
 }
 
 /**
- *
+ * Menu callback/form-builder for the form to create or edit a search page.
  */
 function apachesolr_search_page_settings_form($form, &$form_state, $search_page = NULL) {
 
@@ -144,16 +172,24 @@ function apachesolr_search_page_settings_form($form, &$form_state, $search_page
   foreach ($environments as $id => $environment) {
     $options[$id] = $environment['name'];
   }
+  // Validate the env_id.
+  if (!empty($search_page->env_id) && !apachesolr_environment_load($search_page->env_id)) {
+    $search_page->env_id = '';
+  }
 
   $form['info']['env_id'] = array(
     '#title' => t('Search environment'),
     '#type' => 'select',
     '#options' => $options,
-    '#default_value' => !empty($search_page->env_id) ? $search_page->env_id : NULL,
-    '#description' => t('The environment that is used by this search page. If no environmentr is selected, this page will be disabled.'),
+    '#default_value' => !empty($search_page->env_id) ? $search_page->env_id : '',
+    '#description' => t('The environment that is used by this search page. If no environment is selected, this page will be disabled.'),
     '#weight' => -30,
   );
 
+  // Use the main search page setting as the default for new pages.
+  $default_value = isset($search_page->settings['apachesolr_search_browse']) ? $search_page->settings['apachesolr_search_browse'] : variable_get('apachesolr_search_browse', 'browse');
+  $form['info']['apachesolr_search_browse'] = _apachesolr_search_browse_form($default_value);
+
   $form['actions'] = array(
     '#type' => 'actions',
     '#weight' => 20,
@@ -164,11 +200,6 @@ function apachesolr_search_page_settings_form($form, &$form_state, $search_page
     '#value' => t('Save configuration'),
   );
 
-  $form['actions']['submit_list'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save and go back to list'),
-  );
-
   $form['actions']['cancel'] = array(
     '#type' => 'link',
     '#title' => t('Cancel'),
@@ -205,6 +236,9 @@ function apachesolr_search_page_settings_form_submit($form, &$form_state) {
       }
     }
   }
+
+  $settings['apachesolr_search_browse'] = $form_state['values']['apachesolr_search_browse'];
+
   db_merge('apachesolr_search_page')
     ->key(array('page_id' => $form_state['values']['page_id']))
     ->fields(array(
@@ -219,11 +253,9 @@ function apachesolr_search_page_settings_form_submit($form, &$form_state) {
     ->execute();
 
   // Saves our values in the database, sets redirect path on success.
-  drupal_set_message(t('The configuration options have been saved.'));
+  drupal_set_message(t('The configuration options have been saved for %page.', array('%page' => $form_state['values']['label'])));
 
-  if (t('Save and go back to list') == $form_state['clicked_button']['#value']) {
-      $form_state['redirect'] = 'admin/config/search/apachesolr/search-pages';
-  }
+  $form_state['redirect'] = 'admin/config/search/apachesolr/search-pages';
 
   // Menu rebuild needed to pick up search path.
   menu_rebuild();
@@ -299,7 +331,7 @@ function apachesolr_search_settings_page($env_id = NULL) {
     $output = array(
       'apachesolr_environment' => array(
         '#theme' => 'apachesolr_settings_title',
-        '#evn_id' => $env_id,
+        '#env_id' => $env_id,
       ),
       'apachesolr_search_settings_form' => drupal_get_form('apachesolr_search_settings_form', $fields, $env_id)
     );
diff --git a/apachesolr_search.module b/apachesolr_search.module
index c2efb85..18dbff0 100644
--- a/apachesolr_search.module
+++ b/apachesolr_search.module
@@ -86,7 +86,7 @@ function apachesolr_search_menu() {
     // Gets search pages directly from the index.
     // @todo Honor "enabled" settings?
     $result = db_select('apachesolr_search_page', 's')
-      ->fields('s', array('page_id', 'search_path', 'page_title'))
+      ->fields('s', array('page_id', 'search_path', 'page_title', 'env_id'))
       ->condition('env_id', '', '!=')
       ->execute();
   }
@@ -100,6 +100,11 @@ function apachesolr_search_menu() {
 
   // Iterates over search pages, builds menu items.
   foreach ($result as $record) {
+    // Validate the environemnt ID un case of import or missed deletion.
+    $environment = apachesolr_environment_load($record->env_id);
+    if (!$environment) {
+      continue;
+    }
     // Parses search path into it's various parts, builds menu items dependent
     // on whether %keys is in the path.
     $parts = explode('/', $record->search_path);
@@ -295,6 +300,8 @@ function apachesolr_search_finalize_query(DrupalSolrQueryInterface $query) {
  */
 function apachesolr_search_page_browse($empty_search_behavior) {
   $output = array();
+  $build = array();
+
   // Switch in case we come up with new flags.
   switch ($empty_search_behavior) {
     case 'browse':
@@ -907,28 +914,8 @@ function apachesolr_search_form_search_submit($form, &$form_state) {
  * This adds options to the apachesolr admin form.
  */
 function apachesolr_search_form_apachesolr_settings_alter(&$form, $form_state) {
-  $description = t('This is what is shown when the user enters an empty search, or removes all filters from an active search.');
-  if (!module_exists('facetapi')) {
-    $description .= ' ' . t('<strong>Filters will not be shown until you enable FacetAPI module.</strong>');
-  }
-  else {
-    $description .= t('Remember to enable filters on the !filterslink and assign blocks to regions on the !blocklink', array(
-      '!filterslink' => l('enabled filters page', 'admin/config/search/apachesolr/enabled-filters'),
-      '!blocklink' => l('block settings page', 'admin/structure/block'),
-    ));
-  }
-  $form['apachesolr_search_browse'] = array(
-    '#type' => 'radios',
-    '#title' => t('Behavior on empty search'),
-    '#options' => array(
-      'none'    => t("Show search box"),
-      'browse'  => t("Show search box and enabled filters' blocks under the search box"),
-      'blocks'  => t("Show search box and enabled filters' blocks in their configured regions"),
-      'results' => t("Show search box, enabled filters' blocks in their configured regions and first page of all available results"),
-    ),
-    '#default_value' => variable_get('apachesolr_search_browse', 'browse'),
-    '#description' => $description,
-  );
+  module_load_include('inc', 'apachesolr_search', 'apachesolr_search.admin');
+  $form['apachesolr_search_browse'] = _apachesolr_search_browse_form(variable_get('apachesolr_search_browse', 'browse'));
 
   $form['apachesolr_search_spellcheck'] = array(
     '#type' => 'checkbox',
diff --git a/apachesolr_search.pages.inc b/apachesolr_search.pages.inc
index f825557..1e44710 100644
--- a/apachesolr_search.pages.inc
+++ b/apachesolr_search.pages.inc
@@ -14,18 +14,33 @@ function apachesolr_search_user_defined_search_page($page_id, $keys = '') {
   $filters = isset($search_page->settings['fq']) ? $search_page->settings['fq'] : array();
   $solrsort = isset($_GET['solrsort']) ? $_GET['solrsort'] : '';
 
-  try {
-    $solr = apachesolr_get_solr($search_page->env_id);
-    $results = apachesolr_search_run('apachesolr', array('q' => $keys, 'fq' => $filters), $solrsort, 'search/' . arg(1), pager_find_page(), $solr);
+  $empty_search_behavior = $search_page->settings['apachesolr_search_browse'];
 
+  try {
     // Adds the search form to the page.
     $build['search_form'] = drupal_get_form('apachesolr_search_user_defined_search_form', $search_page, $keys);
-    // Adds search results to the render array.
-    $build['search_results'] = array(
-      '#theme' => 'search_results',
-      '#results' => $results,
-      '#module' => 'apachesolr_search',
-    );
+
+    if (!$keys && empty($_GET['fq']) && empty($_GET['f']) && ($empty_search_behavior == 'browse' || $empty_search_behavior == 'blocks')) {
+      // Pass empty search behavior as string on to apachesolr_search_search_page()
+      apachesolr_search_run_empty('apachesolr', $search_page->search_path);
+      if ($empty_search_behavior == 'browse') {
+        // Hide sidebar blocks for content-area browsing instead.
+        apachesolr_suppress_blocks(TRUE);
+      }
+
+      $build['search_results'] = apachesolr_search_page_browse($empty_search_behavior);
+    }
+    else if ($keys || $empty_search_behavior == 'results') {
+      $solr = apachesolr_get_solr($search_page->env_id);
+      $results = apachesolr_search_run('apachesolr', array('q' => $keys, 'fq' => $filters), $solrsort, $search_page->search_path, pager_find_page(), $solr);
+
+      // Adds search results to the render array.
+      $build['search_results'] = array(
+        '#theme' => 'search_results',
+        '#results' => $results,
+        '#module' => 'apachesolr_search',
+      );
+    }
   }
   catch (Exception $e) {
     watchdog('Apache Solr', nl2br(check_plain($e->getMessage())), NULL, WATCHDOG_ERROR);
