--- inline_registration_orig.module	2010-03-17 17:08:27.000000000 +0100
+++ inline_registration.module	2010-03-18 10:47:54.000000000 +0100
@@ -21,8 +21,18 @@ function inline_registration_form_alter(
       '#weight' => variable_get('inline_registration_weight_'. $form['#node']->type, 0),
     );
       
-    $form['register']['form'] = drupal_retrieve_form('user_register', $form_state);
-      
+    $form_id = 'user_register';
+    $user_register_form = &drupal_retrieve_form($form_id, $form_state);
+    //Let other modules alter the registration form
+    // like the last part of drupal_prepare_form()
+    $user_register_form['__drupal_alter_by_ref'] = array(&$form_state);
+    drupal_alter('form_'. $form_id, $user_register_form);
+    $user_register_form['__drupal_alter_by_ref'] = array(&$form_state);
+    // __drupal_alter_by_ref is unset in the drupal_alter() function, we need
+    // to repopulate it to ensure both calls get the data.
+    drupal_alter('form', $user_register_form, $form_id);
+    $form['register']['form'] = $user_register_form;
+
     // Remove the user_register submit button in favor of the node submit button
     unset($form['register']['form']['submit']);
 
