--- biblio/biblio.contributors.inc.orig	2008-06-26 22:30:57.000000000 +0200
+++ biblio/biblio.contributors.inc	2008-11-11 13:51:49.000000000 +0100
@@ -34,7 +34,11 @@
     				  WHERE bc.vid = %d
     				  	 AND bc.cid = bcd.cid
     				  	 AND  bc.ct_id = bct.ct_id
-    				  ORDER BY bc.ct_id ASC, bc.rank ASC;';
+    				  ORDER BY ';
+  if (variable_get('biblio_sort_contributors', 'type') == 'type') {
+    $query .= 'bc.ct_id ASC, '; 
+  }
+  $query .= 'bc.rank ASC;';
   $result = db_query($query, array($vid));
   while ($creator = db_fetch_array($result)) {
     $contributors[] = $creator;
--- biblio/biblio.install.orig	2008-11-11 13:17:26.000000000 +0100
+++ biblio/biblio.install	2008-11-11 14:05:40.000000000 +0100
@@ -65,6 +65,7 @@
   variable_del('biblio_index');
   variable_del('biblio_sort');
   variable_del('biblio_sort_tabs');
+  variable_del('biblio_sort_contributors');
   variable_del('biblio_style');
   variable_del('biblio_view_only_own');
   variable_del('biblio_auto_citekey');
--- biblio/biblio.admin.inc.orig	2008-11-11 13:17:10.000000000 +0100
+++ biblio/biblio.admin.inc	2008-11-11 14:06:38.000000000 +0100
@@ -296,6 +296,16 @@
       'ASC' => t('Ascending')
     )
   );
+  $form['sort']['biblio_sort_contributors'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Authors sorting'),
+    '#default_value' => variable_get('biblio_sort_contributors', 'type'),
+    '#options' => array(
+      'type' => t('Sort by author type'),
+      'order' => t('Keep order in which authors were entered'),
+      ),
+    '#description' => t('Note: if you save a biblio node while "Sort by author type" is set, the original order will be lost forever.'),
+  );
   $form['style'] = array(
     '#type' => 'fieldset',
     '#collapsible' => TRUE,
