diff --git includes/form.inc includes/form.inc
index b54beeb..80155ff 100644
--- includes/form.inc
+++ includes/form.inc
@@ -99,6 +99,9 @@ function ctools_build_form($form_id, &$form_state) {
     // altering the $form_state variable, which is passed into them by
     // reference.
     ctools_process_form($form_id, $form, $form_state);
+    // As some new form elements might have been added while processing the form
+    // (e.g. the submit handler added elements), we re-build the form.
+    $form = form_builder($form_id, $form, $form_state);
     // If we were told not to redirect, but not told to re-render, return
     // here.
     if (!empty($form_state['executed']) && empty($form_state['rerender'])) {
