diff -rNup views_old\includes\admin.inc views\includes\admin.inc
--- views_old\includes\admin.inc	Sat Nov 21 07:04:22 2009
+++ views\includes\admin.inc	Sat Feb 20 05:08:18 2010
@@ -3036,6 +3036,10 @@ function theme_views_ui_style_plugin_tab
       'align' => 'center',
     ),
     array(
+      'data' => t('Default order'),
+      'align' => 'center',
+    ),
+    array(
       'data' => t('Default sort'),
       'align' => 'center',
     ),
@@ -3049,6 +3053,10 @@ function theme_views_ui_style_plugin_tab
     if (!empty($form['info'][$id]['sortable'])) {
       $row[] = array(
         'data' => drupal_render($form['info'][$id]['sortable']),
+        'align' => 'center',
+      );
+      $row[] = array(
+        'data' => drupal_render($form['info'][$id]['default_sort_order']),
         'align' => 'center',
       );
       $row[] = array(
diff -rNup views_old\plugins\views_plugin_style_table.inc views\plugins\views_plugin_style_table.inc
--- views_old\plugins\views_plugin_style_table.inc	Wed Nov 11 04:30:48 2009
+++ views\plugins\views_plugin_style_table.inc	Sat Feb 20 06:07:24 2010
@@ -51,12 +51,14 @@ class views_plugin_style_table extends v
         return;
       }
       $sort = $this->options['default'];
-      $this->order = !empty($this->options['order']) ? $this->options['order'] : 'asc';
+      $default_sort = empty($this->options['info'][$sort]['default_sort_order']) ? 'asc' : 'desc'; 
+      $this->order = !empty($this->options['order']) ? $this->options['order'] : $default_sort;
     }
     else {
       $sort = $_GET['order'];
       // Store the $order for later use.
-      $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : 'asc';
+      $default_sort = empty($this->options['info'][$sort]['default_sort_order']) ? 'asc' : 'desc'; 
+      $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : $default_sort;
     }
 
     // If a sort we don't know anything about gets through, exit gracefully.
@@ -205,6 +207,13 @@ class views_plugin_style_table extends v
         $form['info'][$field]['sortable'] = array(
           '#type' => 'checkbox',
           '#default_value' => !empty($this->options['info'][$field]['sortable']),
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array($id => array($field)),
+        );
+        $form['info'][$field]['default_sort_order'] = array(
+          '#type' => 'select',
+          '#options' => array(t('ASC'),t('DESC')),
+          '#default_value' => !empty($this->options['info'][$field]['default_sort_order']),
           '#process' => array('views_process_dependency'),
           '#dependency' => array($id => array($field)),
         );
diff -rNup views_old\theme\theme.inc views\theme\theme.inc
--- views_old\theme\theme.inc	Tue Dec 01 04:05:48 2009
+++ views\theme\theme.inc	Sat Feb 20 05:49:03 2010
@@ -311,11 +311,10 @@ function template_preprocess_views_view_
         $vars['header'][$field] = $label;
       }
       else {
-        // @todo -- make this a setting
-        $initial = 'asc';
+        $initial = empty($options['info'][$field]['default_sort_order']) ? 'asc' : 'desc';
 
-        if ($active == $field && $order == 'asc') {
-          $initial = 'desc';
+        if ($active == $field) {
+          $initial = ($order == 'asc') ? 'desc' : 'asc';
         }
 
         $title = t('sort by @s', array('@s' => $label));
