diff --git src/gnome/gnc-split-reg.c src/gnome/gnc-split-reg.c
index 81ca751..7ffe50d 100644
--- src/gnome/gnc-split-reg.c
+++ src/gnome/gnc-split-reg.c
@@ -703,9 +703,6 @@ gnc_split_reg_ld_destroy( GNCLedgerDisplay *ledger )
 
         reg = gnc_ledger_display_get_split_register (ledger);
 
-        if (reg && reg->table)
-            gnc_table_save_state (reg->table);
-
         /*
          * Don't destroy the window here any more.  The register no longer
          * owns it.
diff --git src/register/register-gnome/gnucash-header.c src/register/register-gnome/gnucash-header.c
index 84eda7a..67b672c 100644
--- src/register/register-gnome/gnucash-header.c
+++ src/register/register-gnome/gnucash-header.c
@@ -417,6 +417,7 @@ static void
 gnc_header_resize_column (GncHeader *header, gint col, gint width)
 {
     GnucashSheet *sheet = header->sheet;
+    
 
     gnucash_sheet_set_col_width (sheet, col, width);
 
@@ -429,16 +430,18 @@ gnc_header_resize_column (GncHeader *header, gint col, gint width)
 
     gnc_header_request_redraw (header);
     gnucash_sheet_redraw_all (sheet);
+    gnc_table_save_state (sheet->table); 
 }
 
 static void
 gnc_header_auto_resize_column (GncHeader *header, gint col)
 {
     int width;
-
+    GnucashSheet *sheet = header->sheet;
     width = gnucash_sheet_col_max_width (header->sheet, 0, col);
 
     gnc_header_resize_column (header, col, width);
+    gnc_table_save_state (sheet->table); 
 }
 
 static gint
