diff --git a/better_exposed_filters_exposed_form_plugin.inc b/better_exposed_filters_exposed_form_plugin.inc
index d65787d..52e3db9 100644
--- a/better_exposed_filters_exposed_form_plugin.inc
+++ b/better_exposed_filters_exposed_form_plugin.inc
@@ -548,7 +548,7 @@ Title Desc|Z -> A</pre> Leave the replacement value blank to remove an option al
     /*
      * Handle exposed sort elements.
      */
-    if (isset($settings['sort']) && !empty($form['sort_by']) && !empty($form['sort_order'])) {
+    if (isset($settings['sort']) && !empty($form['sort_by'])) {
       $show_apply = TRUE;
 
       // If selected, collect all sort-related form elements and put them
@@ -558,7 +558,7 @@ Title Desc|Z -> A</pre> Leave the replacement value blank to remove an option al
       $sort_elems = array();
 
       // Check for combined sort_by and sort_order.
-      if ($settings['sort']['advanced']['combine']) {
+      if ($settings['sort']['advanced']['combine'] && !empty($form['sort_order'])) {
         // Combine sort_by and sort_order into a single element.
         $form['sort_bef_combine'] = array(
           '#type' => 'radios',
@@ -676,17 +676,21 @@ Title Desc|Z -> A</pre> Leave the replacement value blank to remove an option al
           $form['sort_by']['#prefix'] = '<div class="bef-sortby bef-select-as-radios">';
           $form['sort_by']['#suffix'] = '</div>';
 
-          $form['sort_order']['#type'] = 'radios';
-          if (empty($form['sort_order']['#process'])) {
-            $form['sort_order']['#process'] = array();
+          if (!empty($form['sort_order'])) {
+            $form['sort_order']['#type'] = 'radios';
+            if (empty($form['sort_order']['#process'])) {
+              $form['sort_order']['#process'] = array();
+            }
+            array_unshift($form['sort_order']['#process'], 'form_process_radios');
+            $form['sort_order']['#prefix'] = '<div class="bef-sortorder bef-select-as-radios">';
+            $form['sort_order']['#suffix'] = '</div>';
           }
-          array_unshift($form['sort_order']['#process'], 'form_process_radios');
-          $form['sort_order']['#prefix'] = '<div class="bef-sortorder bef-select-as-radios">';
-          $form['sort_order']['#suffix'] = '</div>';
         }
         elseif ('bef_links' == $settings['sort']['bef_format']) {
           $form['sort_by']['#theme'] = 'select_as_links';
-          $form['sort_order']['#theme'] = 'select_as_links';
+          if (!empty($form['sort_order'])) {
+            $form['sort_order']['#theme'] = 'select_as_links';
+          }
 
           // Exposed form displayed as blocks can appear on pages other than the
           // view results appear on. This can cause problems with
@@ -694,13 +698,18 @@ Title Desc|Z -> A</pre> Leave the replacement value blank to remove an option al
           // a hint for theme functions to correct this.
           if (!empty($this->display->display_options['exposed_block'])) {
             $form['sort_by']['#bef_path'] = $this->display->display_options['path'];
-            $form['sort_order']['#bef_path'] = $this->display->display_options['path'];
+            if (!empty($form['sort_order'])) {
+              $form['sort_order']['#bef_path'] = $this->display->display_options['path'];
+            }
           }
         }
 
         if ($collapse) {
           $sort_elems[] = 'sort_by';
-          $sort_elems[] = 'sort_order';
+
+          if (!empty($form['sort_order'])) {
+            $sort_elems[] = 'sort_order';
+          }
         }
 
         // Add reset sort option if selected.
