? modules/simpletest/tests/343502.test
? modules/simpletest/tests/343502.test.txt
? sites/all/modules
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.314
diff -u -p -r1.314 form.inc
--- includes/form.inc	19 Jan 2009 10:46:50 -0000	1.314
+++ includes/form.inc	20 Jan 2009 21:07:16 -0000
@@ -509,19 +509,17 @@ function drupal_prepare_form($form_id, &
   }
 
   $form += _element_info('form');
-  $form += array('#tree' => FALSE, '#parents' => array());
+  $form += array('#tree' => FALSE, '#parents' => array(), '#validate' => array(), '#submit' => array());
 
-  if (!isset($form['#validate'])) {
-    if (drupal_function_exists($form_id . '_validate')) {
-      $form['#validate'] = array($form_id . '_validate');
-    }
+  // Add default validation function $form_id_validate if it exists.
+  if (drupal_function_exists($form_id . '_validate')) {
+    $form['#validate'][] = $form_id . '_validate';
   }
 
-  if (!isset($form['#submit'])) {
-    if (drupal_function_exists($form_id . '_submit')) {
-      // We set submit here so that it can be altered.
-      $form['#submit'] = array($form_id . '_submit');
-    }
+  // Add default submit function $form_id_submit if it exists.
+  if (drupal_function_exists($form_id . '_submit')) {
+    // We set submit here so that it can be altered.
+    $form['#submit'][] = $form_id . '_submit';
   }
 
   // Normally, we would call drupal_alter($form_id, $form, $form_state).
