diff --git src/gnome/gnc-plugin-page-register.c src/gnome/gnc-plugin-page-register.c
index dabbde2..6b4febb 100644
--- src/gnome/gnc-plugin-page-register.c
+++ src/gnome/gnc-plugin-page-register.c
@@ -105,6 +105,7 @@ static void gnc_plugin_page_register_summarybar_position_changed(GConfEntry *ent
 void gnc_plugin_page_register_sort_button_cb(GtkToggleButton *button, GncPluginPageRegister *page);
 void gnc_plugin_page_register_sort_response_cb(GtkDialog *dialog, gint response, GncPluginPageRegister *plugin_page);
 void gnc_plugin_page_register_sort_order_save_cb(GtkToggleButton *button, GncPluginPageRegister *page);
+void gnc_plugin_page_register_sort_order_reverse_cb(GtkToggleButton *button, GncPluginPageRegister *page);
 
 static gchar *gnc_plugin_page_register_get_sort_order (GncPluginPage *plugin_page);
 void gnc_plugin_page_register_set_sort_order (GncPluginPage *plugin_page, const gchar *sort_order);
@@ -487,6 +488,7 @@ typedef struct GncPluginPageRegisterPrivate
         SortType original_sort_type;
         gboolean original_save_order;
         gboolean save_order;
+        gboolean reverse_order;
     } sd;
 
     struct
@@ -914,6 +916,7 @@ gnc_plugin_page_register_create_widget (GncPluginPage *plugin_page)
     {
         /* Set the sort order for the split register and status of save order button */
         priv->sd.save_order = FALSE;
+        priv->sd.reverse_order = FALSE;
         order = gnc_plugin_page_register_get_sort_order(plugin_page);
 
         PINFO("Loaded Sort order is %s", order);
@@ -1718,6 +1721,41 @@ gnc_plugin_page_register_sort_order_save_cb (GtkToggleButton *button,
     LEAVE(" ");
 }
 
+/** This function is called whenever the reverse sort order is checked
+ *  or unchecked which allows reversing of the sort order.
+ *
+ *  @param button The toggle button that was changed.
+ *
+ *  @param page A pointer to the GncPluginPageRegister that is
+ *  associated with this sort order dialog.
+ */
+void
+gnc_plugin_page_register_sort_order_reverse_cb (GtkToggleButton *button,
+        GncPluginPageRegister *page)
+        
+{
+    GncPluginPageRegisterPrivate *priv;
+
+    g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+    ENTER("Reverse toggle button (%p), plugin_page %p", button, page);
+
+    /* Compute the new save sort order */
+    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+
+    if (gtk_toggle_button_get_active(button))
+    {
+        gnc_split_reg_set_sort_reversed(priv->gsr, FALSE);
+        priv->sd.reverse_order = TRUE;
+      }
+    else
+    {
+        gnc_split_reg_set_sort_reversed(priv->gsr, TRUE);
+        priv->sd.reverse_order = FALSE;
+      }
+    LEAVE(" ");
+}
 
 /************************************************************/
 /*                    "Filter By" Dialog                    */
@@ -2825,6 +2863,11 @@ gnc_plugin_page_register_cmd_view_sort_by (GtkAction *action,
     button = GTK_WIDGET(gtk_builder_get_object (builder, "sort_save"));
     if (priv->sd.save_order == TRUE)
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+    
+    /* Set the button for the current reverse_order order */
+    button = GTK_WIDGET(gtk_builder_get_object (builder, "sort_reverse"));    
+    if(priv->sd.reverse_order == TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
 
     /* Wire it up */
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, page);
diff --git src/gnome/gnc-split-reg.c src/gnome/gnc-split-reg.c
index 336201b..f665d9b 100644
--- src/gnome/gnc-split-reg.c
+++ src/gnome/gnc-split-reg.c
@@ -153,6 +153,7 @@ void gnc_split_reg_sort_desc_cb (GtkWidget *w, gpointer data);
 void gnc_split_reg_sort_action_cb (GtkWidget *w, gpointer data);
 void gnc_split_reg_sort_notes_cb (GtkWidget *w, gpointer data);
 
+
 void gnc_split_reg_destroy_cb(GtkWidget *widget, gpointer data);
 void gnc_split_reg_size_allocate( GtkWidget *widget,
                                   GtkAllocation *allocation,
@@ -1718,6 +1719,15 @@ gnc_split_reg_sort_notes_cb(GtkWidget *w, gpointer data)
     gnc_split_reg_sort(gsr, BY_NOTES);
 }
 
+
+void 
+gnc_split_reg_set_sort_reversed(GNCSplitReg *gsr, gboolean rev)
+{
+  Query *query = gnc_ledger_display_get_query( gsr->ledger );
+  qof_query_set_sort_increasing (query, rev, rev, rev);
+  gnc_ledger_display_refresh( gsr->ledger );
+}
+
 void
 gnc_split_reg_handle_exchange_cb (GtkWidget *w, gpointer data)
 {
@@ -2104,6 +2114,7 @@ gnc_split_reg_set_sort_type( GNCSplitReg *gsr, SortType t )
     gnc_split_reg_sort( gsr, t );
 }
 
+
 GtkWidget*
 gnc_split_reg_get_summarybar( GNCSplitReg *gsr )
 {
diff --git src/gnome/gnc-split-reg.h src/gnome/gnc-split-reg.h
index 5d7ff0b..cd0db86 100644
--- src/gnome/gnc-split-reg.h
+++ src/gnome/gnc-split-reg.h
@@ -191,6 +191,12 @@ SortType gnc_split_reg_get_sort_type( GNCSplitReg *gsr );
 void gnc_split_reg_set_sort_type( GNCSplitReg *gsr, SortType t );
 
 /**
+ * Set/get sort order of register
+ **/ 
+void gnc_split_reg_set_sort_reversed(GNCSplitReg *gsr, gboolean rev);
+
+
+/**
  * Gets/sets the style of the GNCSplitReg.
  **/
 void gnc_split_reg_change_style (GNCSplitReg *gsr, SplitRegisterStyle style);
diff --git src/gnome/gtkbuilder/gnc-plugin-page-register.glade src/gnome/gtkbuilder/gnc-plugin-page-register.glade
index 434fc5f..385757b 100644
--- src/gnome/gtkbuilder/gnc-plugin-page-register.glade
+++ src/gnome/gtkbuilder/gnc-plugin-page-register.glade
@@ -1,7 +1,6 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
-  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkDialog" id="Duplicate Transaction Dialog">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -11,12 +10,12 @@
     <property name="modal">True</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox15">
+      <object class="GtkBox" id="dialog-vbox15">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="spacing">6</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area15">
+          <object class="GtkButtonBox" id="dialog-action_area15">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -126,8 +125,6 @@
                     <property name="has_focus">True</property>
                     <property name="primary_icon_activatable">False</property>
                     <property name="secondary_icon_activatable">False</property>
-                    <property name="primary_icon_sensitive">True</property>
-                    <property name="secondary_icon_sensitive">True</property>
                     <property name="adjustment">adjustment1</property>
                     <property name="climb_rate">1</property>
                   </object>
@@ -180,12 +177,12 @@
     <property name="type_hint">dialog</property>
     <signal name="response" handler="gnc_plugin_page_register_filter_response_cb" swapped="no"/>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox19">
+      <object class="GtkBox" id="dialog-vbox19">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="spacing">6</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area21">
+          <object class="GtkButtonBox" id="dialog-action_area21">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -755,12 +752,12 @@
     <property name="type_hint">dialog</property>
     <signal name="response" handler="gnc_plugin_page_register_sort_response_cb" swapped="no"/>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox17">
+      <object class="GtkBox" id="dialog-vbox17">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="spacing">6</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area19">
+          <object class="GtkButtonBox" id="dialog-action_area19">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -1011,7 +1008,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkHSeparator" id="hseparator1">
+              <object class="GtkHSeparator" id="hseparator3">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
               </object>
@@ -1033,7 +1030,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkHBox" id="hbox1">
+              <object class="GtkHBox" id="hbox2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <child>
@@ -1056,6 +1053,23 @@
                     <property name="position">0</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkCheckButton" id="sort_reverse">
+                    <property name="label" translatable="yes">Reverse Order</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="xalign">0</property>
+                    <property name="draw_indicator">True</property>
+                    <signal name="toggled" handler="gnc_plugin_page_register_sort_order_reverse_cb" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="expand">True</property>
@@ -1087,12 +1101,12 @@
     <property name="window_position">center-on-parent</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox16">
+      <object class="GtkBox" id="dialog-vbox16">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="spacing">6</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area18">
+          <object class="GtkButtonBox" id="dialog-action_area18">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
@@ -1162,8 +1176,6 @@
                 <property name="activates_default">True</property>
                 <property name="primary_icon_activatable">False</property>
                 <property name="secondary_icon_activatable">False</property>
-                <property name="primary_icon_sensitive">True</property>
-                <property name="secondary_icon_sensitive">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
