--- /home/bruno/Scrivania/ahah_helper.module	2009-02-14 16:48:36.000000000 +0100
+++ ahah_helper.module	2009-12-29 23:07:47.712532473 +0100
@@ -137,11 +137,11 @@ function ahah_helper_render($form_item_t
   $form['#post'] = $_POST;
   $form['#programmed'] = FALSE;
   $form_state['post'] = $_POST;
-  
+
   // $form_state['storage']['#ahah_helper']['file'] has been set, to know
   // which file should be loaded. This is necessary because we'll use the form
   // definition itself rather than the cached $form.
-  if (isset($form_state['storage']['#ahah_helper']['file'])) {
+  if (isset($form_state['storage']['#ahah_helper']['#file'])) {
     require_once($form_state['storage']['#ahah_helper']['#file']);
   }
 
@@ -186,18 +186,36 @@ function ahah_helper_render($form_item_t
   // drupal_process_form set up.
   //$form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
   $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
-
+  
   // Get the form item we want to render.
   $form_item = _ahah_helper_get_form_item($form, $form_item_to_render);
 
+  $ahah_fields = array();
+  foreach($form_item as $key=>$value) {      
+      if (is_array($value)) {          
+          if ( isset($value['#id']) && isset($value['#ahah']) && is_array($value['#ahah']) ) {
+               $ahah_fields[$value['#id']] = $value['#ahah'];
+          }
+      }
+  }
+  
   // Get the JS settings so we can merge them.
   $javascript = drupal_add_js(NULL, NULL, 'header');
   $settings = call_user_func_array('array_merge_recursive', $javascript['setting']);
+  
+
+  if (count($ahah_fields) > 0) {
+      foreach($ahah_fields as $ahah_field=>$ahah_field_data) {
+          foreach($ahah_field_data as $key=>$value) {
+            $settings['ahah'][$ahah_field][$key] = $value;
+          }
+      }
+  }
 
   drupal_json(array(
     'status'   => TRUE,
     'data'     => theme('status_messages') . drupal_render($form_item),
-    'settings' => array('ahah' => $settings['ahah']),
+    'settings' => $settings, 
   ));
 }
 
