diff --git a/apachesolr.admin.inc b/apachesolr.admin.inc
index 115d756..cff9afd 100644
--- a/apachesolr.admin.inc
+++ b/apachesolr.admin.inc
@@ -183,15 +183,16 @@ function apachesolr_environment_edit_form(&$form_state, $environment = NULL) {
       '#value' => t('Delete'),
     );
   }
-
+  // Cancel
   $form['actions']['cancel'] = array(
-    '#type' => 'submit',
-    '#submit' => array('apachesolr_environment_edit_cancel'),
-    '#value' => t('Cancel'),
+    '#type' => 'markup',
+    '#value' => l(t('Cancel'), referer_uri()),
   );
+
   return $form;
 }
 
+
 function apachesolr_environment_edit_test_submit($form, &$form_state) {
   $ping = apachesolr_server_status($form_state['values']['url'], $form_state['values']['service_class'], $form_state['values']['service_class_info']);
   if ($ping) {
@@ -251,17 +252,6 @@ function apachesolr_environment_edit_submit($form, &$form_state) {
   }
 }
 
-function apachesolr_environment_edit_cancel($form, &$form_state) {
-  // Ensures destination is an internal URL, builds "cancel" link.
-  if (isset($_REQUEST['destination'])) {
-    $destination = $_REQUEST['destination'];
-  }
-  else {
-    $destination = 'admin/settings/apachesolr/settings';
-  }
-  $form_state['redirect'] = $destination;
-}
-
 /**
  * Check to see if the facetapi module is installed, and if not put up
  * a message.
diff --git a/apachesolr_search.admin.inc b/apachesolr_search.admin.inc
index 7e8fa65..8a6b38a 100644
--- a/apachesolr_search.admin.inc
+++ b/apachesolr_search.admin.inc
@@ -425,11 +425,10 @@ function apachesolr_search_page_settings_form(&$form_state, $search_page = NULL)
     '#submit' => array('apachesolr_search_page_settings_form_submit'),
   );
 
-
+  // Cancel
   $form['actions']['cancel'] = array(
-    '#type' => 'submit',
-    '#value' => t('Cancel'),
-    '#submit' => array('apachesolr_search_page_settings_cancel'),
+    '#type' => 'markup',
+    '#value' => l(t('Cancel'), referer_uri()),
   );
 
   return $form;
@@ -556,17 +555,6 @@ function apachesolr_search_page_settings_form_submit($form, &$form_state) {
   menu_rebuild();
 }
 
-function apachesolr_search_page_settings_cancel($form, &$form_state) {
-  // Ensures destination is an internal URL, builds "cancel" link.
-  if (isset($_GET['destination'])) {
-    $destination = $_GET['destination'];
-  }
-  else {
-    $destination = 'admin/settings/apachesolr/search-pages';
-  }
-  $form_state['redirect'] = $destination;
-}
-
 /**
  * Deletes a single search page configuration.
  */
