diff --git a/apachesolr_search.admin.inc b/apachesolr_search.admin.inc
index edd12cb..55913a8 100644
--- a/apachesolr_search.admin.inc
+++ b/apachesolr_search.admin.inc
@@ -509,6 +509,9 @@ function apachesolr_search_page_settings_form_submit($form, &$form_state) {
   $search_page['settings'] = $settings;
   apachesolr_search_page_save($search_page);
 
+  // Menu rebuild needed to pick up search path.
+  variable_set('menu_rebuild_needed', TRUE);
+
   // Saves our values in the database, sets redirect path on success.
   drupal_set_message(t('The configuration options have been saved for %page.', array('%page' => $form_state['values']['label'])));
   if (isset($form_state['clicked_button']['#redirect'])) {
@@ -521,8 +524,6 @@ function apachesolr_search_page_settings_form_submit($form, &$form_state) {
   unset($_GET['destination']);
   drupal_static_reset('drupal_get_destination');
   drupal_get_destination();
-  // Menu rebuild needed to pick up search path.
-  menu_rebuild();
 }
 
 /**
