Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.352
diff -u -r1.352 form.inc
--- includes/form.inc	23 Jul 2009 00:01:03 -0000	1.352
+++ includes/form.inc	23 Jul 2009 18:14:06 -0000
@@ -625,6 +625,14 @@
     }
   }
 
+  if (!empty($form['#pre_alter'])) {
+    foreach ((array)$form['#pre_alter'] as $fn) {
+      if (drupal_function_exists($fn)) {
+        $fn($form, $form_state, $form_id);
+      }
+    }
+  }
+
   // Normally, we would call drupal_alter($form_id, $form, $form_state).
   // However, drupal_alter() normally supports just one byref parameter. Using
   // the __drupal_alter_by_ref key, we can store any additional parameters
