--- ajaxtable.module.orig       2008-01-04 12:06:55.000000000 -0600
+++ ajaxtable.module    2008-01-04 12:20:59.000000000 -0600
@@ -268,7 +268,11 @@ function _ajaxtable_render($table,$id,$u
       } else {
         $connect = ' WHERE ';
       }
-      $table['query'] .= $connect . $search_query;
+      if (strpos($table['query'], "ORDER BY")) {
+        $table['query'] = str_replace('ORDER BY ', $connect . $search_query.' ORDER BY ', $table['query']);
+      }else {
+        $table['query'] .= $connect . $search_query;
+      }
     }
   }
   
@@ -304,7 +308,11 @@ function _ajaxtable_render($table,$id,$u
     } else {
       $connect = ' WHERE ';
     }
-    $table['query'] .= $connect . $search_inputs_query;
+    if (strpos($table['query'], "ORDER BY")) {
+      $table['query'] = str_replace('ORDER BY ', $connect . $search_inputs_query.' ORDER BY ', $table['query']);
+    }else {
+      $table['query'] .= $connect . $search_inputs_query;
+    }
   }
   
     
@@ -317,7 +325,11 @@ function _ajaxtable_render($table,$id,$u
     } else {
       $connect = ' WHERE ';
     }
-    $table['query'] .= $connect . $input_query;
+    if (strpos($table['query'], "ORDER BY")) {
+      $table['query'] = str_replace('ORDER BY ', $connect . $inputs_query.' ORDER BY ', $table['query']);
+    }else {
+      $table['query'] .= $connect . $inputs_query;
+    }
     $search_values[] = $input_value;
   }
       
@@ -640,7 +652,11 @@ function _ajaxtable_render($table,$id,$u
   
   // Add sort to query
   if ($sort != '') {
-    $table['query'] .= ' ORDER BY ' . $sort;
+       if (strpos($table['query'], "ORDER BY")) {
+         $table['query'] = str_replace('ORDER BY ', 'ORDER BY '.$sort.', ', $table['query']);
+       }else {
+      $table['query'] .= ' ORDER BY ' . $sort;
+    }
   }
   // Get rows
   
   