Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.265.2.28
diff -u -r1.265.2.28 form.inc
--- includes/form.inc	16 Sep 2009 17:54:19 -0000	1.265.2.28
+++ includes/form.inc	30 Sep 2009 02:52:56 -0000
@@ -131,14 +131,14 @@
   // the form will simply be re-rendered with the values still in its
   // fields.
   //
-  // If $form_state['storage'] or $form_state['rebuild'] has been set
-  // and the form has been submitted, we know that we're in a complex
-  // multi-part process of some sort and the form's workflow is NOT 
-  // complete. We need to construct a fresh copy of the form, passing
-  // in the latest $form_state in addition to any other variables passed
-  // into drupal_get_form().
+  // If $form_state['storage'] or $form_state['rebuild'] have been
+  // set by any submit or validate handlers, however, we know that
+  // we're in a complex multi-part process of some sort and the form's
+  // workflow is NOT complete. We need to construct a fresh copy of
+  // the form, passing in the latest $form_state in addition to any
+  // other variables passed into drupal_get_form().
 
-  if ((!empty($form_state['storage']) || !empty($form_state['rebuild'])) && !empty($form_state['submitted']) && !form_get_errors()) {
+  if (!empty($form_state['rebuild']) || !empty($form_state['storage'])) {
     $form = drupal_rebuild_form($form_id, $form_state, $args);
   }
 
