--- Solr_Base_Query.php	2010-01-21 09:04:40.000000000 +0100
+++ apachesolr_custom_sort/Solr_Base_Query.php	2010-01-21 09:04:19.000000000 +0100
@@ -264,12 +264,25 @@
   }
 
   public function get_available_sorts() {
-    return $this->available_sorts;
+    $sorts = array();
+    
+    foreach( $this->available_sorts as $key => $sort ) {
+      if( $sort['status'] ) {
+        $sorts[$key]['title'] = $sort['title'];
+        $sorts[$key]['default'] = $sort['default'];
+      }
+    }
+    
+    return $sorts;
   }
 
   public function set_available_sort($name, $sort) {
     // We expect non-aliased sorts to be added.
     $this->available_sorts[$name] = $sort;
+    $this->available_sorts[$name]['standard'] = FALSE;
+    $this->available_sorts[$name]['status'] = TRUE;
+    
+    variable_set('apachesolr_custom_sort_types', $this->available_sorts);
   }
 
   public function remove_available_sort($name) {
@@ -281,13 +294,7 @@
    */
   protected function default_sorts() {
     // The array keys must always be real Solr index fields.
-    return array(
-      'score' => array('title' => t('Relevancy'), 'default' => 'asc'),
-      'sort_title' => array('title' => t('Title'), 'default' => 'asc'),
-      'type' => array('title' => t('Type'), 'default' => 'asc'),
-      'sort_name' => array('title' => t('Author'), 'default' => 'asc'),
-      'created' => array('title' => t('Date'), 'default' => 'desc'),
-    );
+    return variable_get('apachesolr_custom_sort_types', array());
   }
 
   /**
