Index: sites/all/modules/views/plugins/views_plugin_style_table.inc
===================================================================
--- sites/all/modules/views/plugins/views_plugin_style_table.inc	(revision 2090)
+++ sites/all/modules/views/plugins/views_plugin_style_table.inc	(working copy)
@@ -30,7 +30,7 @@
   function build_sort() {
     if (!isset($_GET['order'])) {
       // check for a 'default' clicksort. If there isn't one, exit gracefully.
-      if (empty($this->options['default'])) {
+      if ($this->options['default'] == -1) {
         return TRUE;
       }
       $sort = $this->options['default'];
@@ -42,11 +42,6 @@
       $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : 'asc';
     }
 
-    // If a sort we don't know anything about gets through, exit gracefully.
-    if (empty($this->view->field[$sort])) {
-      return TRUE;
-    }
-
     // Ensure $this->order is valid.
     if ($this->order != 'asc' && $this->order != 'desc') {
       $this->order = 'asc';
@@ -56,10 +51,7 @@
     $this->active = $sort;
 
     // Tell the field to click sort.
-    $this->view->field[$sort]->click_sort($this->order);
-
-    // Let the builder know whether or not we're overriding the default sorts.
-    return empty($this->options['override']);
+    $this->view->field[$sort]->click_sort($this->order, !empty($this->options['override']));
   }
 
   /**
Index: sites/all/modules/views/includes/query.inc
===================================================================
--- sites/all/modules/views/includes/query.inc	(revision 2090)
+++ sites/all/modules/views/includes/query.inc	(working copy)
@@ -789,8 +789,13 @@
    *   must also be in the SELECT portion. If an $alias isn't specified
    *   one will be generated for from the $field; however, if the
    *   $field is a formula, this alias will likely fail.
+   * @param $prepend
+   *   Whether or not to prepend the field to the SORT BY clause. Used to 
+   *   connote primary or secondary priority if other SORT BY clauses have 
+   *   already been specified by the view author. Controlled by the "Override 
+   *   normal sorting if click sorting is used" feature of table views.
    */
-  function add_orderby($table, $field, $order, $alias = '') {
+  function add_orderby($table, $field, $order, $alias = '', $prepend = FALSE) {
     if ($table) {
       $this->ensure_table($table);
     }
@@ -808,7 +813,8 @@
       $this->add_field($table, $field, $as);
     }
 
-    $this->orderby[] = "$as " . strtoupper($order);
+    $f = $prepend? 'array_unshift' : 'array_push';
+    $f($this->orderby, $as .' '. strtoupper($order));
 
     // If grouping, all items in the order by must also be in the
     // group by clause. Check $table to ensure that this is not a
Index: sites/all/modules/views/includes/view.inc
===================================================================
--- sites/all/modules/views/includes/view.inc	(revision 2090)
+++ sites/all/modules/views/includes/view.inc	(working copy)
@@ -596,10 +596,8 @@
 
     // Build our sort criteria if we were instructed to do so.
     if (!empty($this->build_sort)) {
-      // Allow the style handler to deal with sorting.
-      if ($this->style_plugin->build_sort()) {
-        $this->_build('sort');
-      }
+      $this->_build('sort'); // view sort takes first priority
+      $this->style_plugin->build_sort(); // click sort takes second priority
     }
 
     // Allow display handler to affect the query:
Index: sites/all/modules/views/handlers/views_handler_field.inc
===================================================================
--- sites/all/modules/views/handlers/views_handler_field.inc	(revision 2090)
+++ sites/all/modules/views/handlers/views_handler_field.inc	(working copy)
@@ -106,8 +106,8 @@
   /**
    * Called to determine what to tell the clicksorter.
    */
-  function click_sort($order) {
-    $this->query->add_orderby($this->table, $this->field, $order, $this->field_alias);
+  function click_sort($order, $override = FALSE) {
+    $this->query->add_orderby($this->table, $this->field, $order, $this->field_alias, $override);
   }
 
   /**
