Index: mythweb/themes/Default/recorded_programs.php
===================================================================
--- mythweb/themes/Default/recorded_programs.php	(revision 7368)
+++ mythweb/themes/Default/recorded_programs.php	(working copy)
@@ -94,6 +94,17 @@
     $group_field = "";
 }
 
+// specify some state which should be retained
+$page_state_list = array();
+$page_state = "";
+if ($_GET['recgroup']) {
+   $page_state_list[] = "recgroup=" . urlencode($_GET['recgroup']);
+}
+if ($_GET['title']) {
+   $page_state_list[] = "title=" . urlencode($_GET['title']);
+}
+$page_state = implode('&', $page_state_list);
+
 ?>
 
 <table width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
@@ -104,17 +115,17 @@
     if (show_recorded_pixmaps)
         echo "\t<td>".t('preview')."</td>\n";
 ?>
-    <td><?php echo get_sort_link('title',    t('title'))    ?></td>
-    <td><?php echo get_sort_link('subtitle', t('subtitle')) ?></td>
+    <td><?php echo get_sort_link('title',    t('title'), $page_state)    ?></td>
+    <td><?php echo get_sort_link('subtitle', t('subtitle'), $page_state) ?></td>
 <?php
     if (!$_SESSION['recorded_descunder'])
-        echo "\t<td>".get_sort_link('description', t('description'))."</td>\n";
+        echo "\t<td>".get_sort_link('description', t('description'), $page_state)."</td>\n";
 ?>
-    <td><?php echo get_sort_link('channum',   t('channum'))  ?></td>
-    <td><?php echo get_sort_link('recgroup',  t('recgroup'))  ?></td>
-    <td><?php echo get_sort_link('airdate',   t('airdate'))  ?></td>
-    <td><?php echo get_sort_link('length',    t('length'))   ?></td>
-    <td><?php echo get_sort_link('file_size', t('file size')) ?></td>
+    <td><?php echo get_sort_link('channum',   t('channum'), $page_state)  ?></td>
+    <td><?php echo get_sort_link('recgroup',  t('recgroup'), $page_state)  ?></td>
+    <td><?php echo get_sort_link('airdate',   t('airdate'), $page_state)  ?></td>
+    <td><?php echo get_sort_link('length',    t('length'), $page_state)   ?></td>
+    <td><?php echo get_sort_link('file_size', t('file size'), $page_state) ?></td>
 </tr><?php
     $row = 0;
 
Index: mythweb/themes/Default/scheduled_recordings.php
===================================================================
--- mythweb/themes/Default/scheduled_recordings.php	(revision 7368)
+++ mythweb/themes/Default/scheduled_recordings.php	(working copy)
@@ -28,8 +28,7 @@
 
 <div id="display_options" class="command command_border_l command_border_t command_border_b command_border_r">
 
-    <form id="change_display" action="scheduled_recordings.php" method="post">
-    <input type="hidden" name="change_display" value="1">
+    <form id="change_display" action="scheduled_recordings.php" method="get">
 
     <?php echo t('Display') ?>:
 
@@ -55,11 +54,25 @@
 
 <table id="listings" width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
 <tr class="menu">
-    <?php if ($group_field != '') echo "<td class=\"list\">&nbsp;</td>\n"; ?>
-    <td><?php echo get_sort_link('title',   t('title'))   ?></td>
-    <td><?php echo get_sort_link('channum', t('channum')) ?></td>
-    <td><?php echo get_sort_link('airdate', t('airdate')) ?></td>
-    <td><?php echo get_sort_link('length',  t('length'))  ?></td>
+<?php 
+if ($group_field != '') echo "<td class=\"list\">&nbsp;</td>\n";
+
+// page state to preserve
+$page_state_list = array();
+$page_state = "";
+$session_stateful_fields = array('disp_scheduled', 'disp_duplicates', 'disp_deactivated', 'disp_conflicts');
+foreach ($session_stateful_fields as $s) {
+    if ($_SESSION['scheduled_recordings'][$s]) {
+        $page_state_list[] = "$s=on";
+    }
+}
+$page_state = implode('&', $page_state_list);
+        
+?>
+    <td><?php echo get_sort_link('title',   t('title'),   $page_state)   ?></td>
+    <td><?php echo get_sort_link('channum', t('channum'), $page_state) ?></td>
+    <td><?php echo get_sort_link('airdate', t('airdate'), $page_state) ?></td>
+    <td><?php echo get_sort_link('length',  t('length'),  $page_state)  ?></td>
     <td align="center" colspan="2"><?php echo t('Commands') ?></a></td>
 </tr><?php
     $row = 0;
Index: mythweb/scheduled_recordings.php
===================================================================
--- mythweb/scheduled_recordings.php	(revision 7368)
+++ mythweb/scheduled_recordings.php	(working copy)
@@ -48,12 +48,10 @@
     }
 
 // Ignore certain shows?
-    if ($_POST['change_display']) {
-        $_SESSION['scheduled_recordings']['disp_scheduled']   = $_POST['disp_scheduled']   ? true : false;
-        $_SESSION['scheduled_recordings']['disp_duplicates']  = $_POST['disp_duplicates']  ? true : false;
-        $_SESSION['scheduled_recordings']['disp_deactivated'] = $_POST['disp_deactivated'] ? true : false;
-        $_SESSION['scheduled_recordings']['disp_conflicts']   = $_POST['disp_conflicts']   ? true : false;
-    }
+    $_SESSION['scheduled_recordings']['disp_scheduled']   = $_REQUEST['disp_scheduled']   ? true : false;
+    $_SESSION['scheduled_recordings']['disp_duplicates']  = $_REQUEST['disp_duplicates']  ? true : false;
+    $_SESSION['scheduled_recordings']['disp_deactivated'] = $_REQUEST['disp_deactivated'] ? true : false;
+    $_SESSION['scheduled_recordings']['disp_conflicts']   = $_REQUEST['disp_conflicts']   ? true : false;
 
 // Defaults
     if (!is_array($_SESSION['scheduled_recordings'])
Index: mythweb/includes/sorting.php
===================================================================
--- mythweb/includes/sorting.php	(revision 7368)
+++ mythweb/includes/sorting.php	(working copy)
@@ -12,9 +12,11 @@
     get_sort_link:
     returns a formatted link to the specified sort field
 */
-    function get_sort_link($field, $string) {
+    function get_sort_link($field, $string, $addl = NULL) {
         $status = sort_status($field);
-        $link = '<a href="'.$_SERVER['PHP_SELF'].'?sortby='.urlencode($field).'">'
+        $link = '<a href="'.$_SERVER['PHP_SELF'].'?'
+               .($addl ? $addl . '&' : '')
+               .'sortby='.urlencode($field).'">'
                .$string
                .'</a>';
         if ($status == 1)
