Index: src/gnome/reconcile-list.h
===================================================================
--- src/gnome/reconcile-list.h	(revision 16616)
+++ src/gnome/reconcile-list.h	(working copy)
@@ -49,6 +49,8 @@
   Account *account;
   GList *column_list;
 
+  time_t statement_date;
+
   GNCReconcileList *sibling;
   GNCReconcileListType list_type;
   gboolean no_toggle;
Index: src/gnome/reconcile-list.c
===================================================================
--- src/gnome/reconcile-list.c	(revision 16616)
+++ src/gnome/reconcile-list.c	(working copy)
@@ -138,6 +138,7 @@
 
   list->account = account;
   list->list_type = type;
+  list->statement_date = statement_date;
 
   query = xaccMallocQuery();
   xaccQuerySetBook(query, gnc_get_current_book ());
@@ -577,9 +578,16 @@
 
     split = gtk_clist_get_row_data (clist, i);
 
-    recn = g_hash_table_lookup (list->reconciled, split) ? CREC : NREC;
+    // Don't change splits past reconciliation date that haven't been
+    // set to be reconciled
+    if ( difftime(list->statement_date,
+		  xaccTransGetDate(xaccSplitGetParent(split))) >= 0 ||
+	 g_hash_table_lookup(list->reconciled, split))
+    {
+      recn = g_hash_table_lookup (list->reconciled, split) ? CREC : NREC;
 
-    xaccSplitSetReconcile (split, recn);
+      xaccSplitSetReconcile (split, recn);
+    }
   }
   gnc_resume_gui_refresh();
 }
