diff -Naur conditional_fields-5/conditional_fields.info conditional_fields/conditional_fields.info
--- conditional_fields-5/conditional_fields.info	2008-06-27 17:02:20.000000000 -0700
+++ conditional_fields/conditional_fields.info	2008-12-02 09:47:07.000000000 -0800
@@ -1,11 +1,6 @@
 ; $Id:$
 name = Conditional Fields
 description = Content fields and groups visibility based on the values of user defined 'trigger' fields.
-dependencies = content
+dependencies[] = content
 package = CCK
-
-; Information added by drupal.org packaging script on 2008-06-28
-version = "5.x-1.x-dev"
-project = "conditional_fields"
-datestamp = "1214611340"
-
+core = 6.x
\ No newline at end of file
diff -Naur conditional_fields-5/conditional_fields.install conditional_fields/conditional_fields.install
--- conditional_fields-5/conditional_fields.install	2008-01-11 04:13:59.000000000 -0800
+++ conditional_fields/conditional_fields.install	2008-12-02 09:47:10.000000000 -0800
@@ -1,44 +1,75 @@
 <?php
-// $Id:$
+// $Id$
 
 /**
  * Implementation of hook_install().
  */
 function conditional_fields_install() {
-  switch ($GLOBALS['db_type']) {
-    case 'mysql':
-    case 'mysqli':
-      db_query("CREATE TABLE {conditional_fields} (
-        control_field_name varchar(32) NOT NULL default '',
-        field_name varchar(32) NOT NULL default '',
-        type varchar(127) NOT NULL default '',
-        trigger_values mediumtext NOT NULL
-      ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
-      break;
-    case 'pgsql':
-      // Untested
-      db_query("CREATE TABLE {conditional_fields} (
-        control_field_name varchar(32) NOT NULL default '',
-        field_name varchar(32) NOT NULL default '',
-        type varchar(127) NOT NULL default '',
-        trigger_values text NOT NULL
-      ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
-      break;
-  }
+  drupal_install_schema('conditional_fields');
   
   // Increase module weight to 10, over fieldgroup.module which has 9.
   db_query("UPDATE {system} SET weight = 10 WHERE name = 'conditional_fields'");
+}
 
+function conditional_fields_schema() {
+  // $schema['conditional_fields'] = array(
+  //   'fields' => array(
+  //     'control_field_name' => array(
+  //       'type' => 'varchar',
+  //       'length' => 32,
+  //       'not null' => TRUE,
+  //       'default' => ''),
+  //     'field_name' => array(
+  //       'type' => 'varchar',
+  //       'length' => 32,
+  //       'not null' => TRUE,
+  //       'default' => ''),
+  //     'type' => array(
+  //       'type' => 'varchar',
+  //       'length' => 127,
+  //       'not null' => TRUE,
+  //       'default' => ''),
+  //     'trigger_values' => array(
+  //       'type' => 'mediumtext',
+  //       'not null' => TRUE)
+  //     )
+  //   );
+  $schema['conditional_fields'] = array(
+    'fields' => array(
+      'control_field_name' => array(
+        'type' => 'varchar', 
+        'length' => '32', 
+        'not null' => TRUE, 
+        'default' => ''),
+      'field_name' => array(
+        'type' => 'varchar', 
+        'length' => '32', 
+        'not null' => TRUE, 
+        'default' => ''),
+      'type' => array(
+        'type' => 'varchar', 
+        'length' => '127', 
+        'not null' => TRUE, 
+        'default' => ''),
+      'trigger_values' => array(
+        'type' => 'text', 
+        'size' => 'medium', 
+        'not null' => TRUE)
+        ),
+    );
+    
+  return $schema;
 }
 
+
 /**
 * Implementation of hook_uninstall().
 */
 function conditional_fields_uninstall() {
+  drupal_uninstall_schema('conditional_fields');
   
   // Delete all the conditional fields variables and then clear the variable cache  
   db_query("DELETE FROM {variable} WHERE name LIKE 'c_fields_%'");
   cache_clear_all('variables', 'cache');
 
-  db_query('DROP TABLE {conditional_fields}');
 }
diff -Naur conditional_fields-5/conditional_fields.js conditional_fields/conditional_fields.js
--- conditional_fields-5/conditional_fields.js	2008-05-23 15:06:17.000000000 -0700
+++ conditional_fields/conditional_fields.js	2008-12-02 12:26:18.000000000 -0800
@@ -23,7 +23,7 @@
           toSwitch.find("textarea, input, select").attr("disabled", "disabled");
         }
         else {
-          toSwitch.hide();
+          toSwitch.hide('slow');
         }
         
         /* Find the trigger values of the controlled field (for this controlling field) */
@@ -38,7 +38,7 @@
               toSwitch.find("textarea, input, select").attr("disabled", "");
             }
             else {
-              toSwitch.show();
+              toSwitch.show('slow');
             }
             
             /* Stop searching in this field */
@@ -95,6 +95,4 @@
     return -1;
 }
 
-if (Drupal.jsEnabled) {
-  $(document).ready(Drupal.ConditionalFields.docReady);
-}
\ No newline at end of file
+$(document).ready(Drupal.ConditionalFields.docReady);
diff -Naur conditional_fields-5/conditional_fields.module conditional_fields/conditional_fields.module
--- conditional_fields-5/conditional_fields.module	2008-06-27 05:02:00.000000000 -0700
+++ conditional_fields/conditional_fields.module	2008-12-02 12:11:18.000000000 -0800
@@ -10,37 +10,37 @@
 define ('C_FIELDS_ORPHANED_SHOW_TRIGGERED', 1);
 define ('C_FIELDS_ORPHANED_SHOW_ALL', 2);
 
-function conditional_fields_help($section) {
-  if (preg_match('!^admin/content/types/.*/conditional$!', $section)) {
+function conditional_fields_help($path, $arg) {
+switch ($path) {
+  case 'admin/content/types/%/conditional':
     return t('These settings only apply to the conditional fields of this content type.');
+    break;
   }
 }
 
 /**
  * Implementation of hook_menu().
  */
-function conditional_fields_menu($may_cache) {
-
+function conditional_fields_menu() {
   $items = array();
-  $access = user_access('administer conditional fields');
   
-  if (!$may_cache) {
-    if (arg(0) == 'admin' && arg(1) == 'content' && arg(2) == 'types' && arg(3)) {
-      $content_type = content_types(arg(3));
-
-      if (arg(3) == $content_type['url_str']) {
-        $items[] = array(
-          'path' => 'admin/content/types/'. $content_type['url_str'] .'/conditional',
-          'title' => t('Conditional fields'),
-          'callback' => 'drupal_get_form',
-          'callback arguments' => array('_conditional_fields_admin', $content_type['type']),
-          'access' => $access,
-          'type' => MENU_LOCAL_TASK,
-          'weight' => 5
-        );
-      }
-    }
+  foreach (node_get_types() as $type) {
+    $type_name = $type->type;
+    $content_type = content_types($type_name);
+    $type_url_str = $content_type['url_str'];
+  
+    $items['admin/content/node-type/'. $type_url_str .'/conditional'] = array(
+      'title' => 'Conditional fields',
+      'page callback' => 'drupal_get_form',
+      'page arguments' => array('_conditional_fields_admin', $type_name),
+      'access arguments' => array('administer conditional fields'),
+      'type' => MENU_LOCAL_TASK,
+      'weight' => 5
+      );
+    
+    
   }
+  
   return $items;
 }
 
@@ -54,7 +54,7 @@
 /**
  *  Administration form for conditional fields
  */
-function _conditional_fields_admin($type) {
+function _conditional_fields_admin($form, $type) {
   $form = array();
   $options = array(C_FIELDS_JS_NO => t("Don't use javascript. Fields are only hidden on node view."), C_FIELDS_JS_HIDE => t('Hide untriggered fields.'), C_FIELDS_JS_DISABLE => t('Disable untriggered fields.'));
   $form['js_set'] = array(
@@ -91,7 +91,7 @@
   $form['show_all'] = array(
     '#type' => 'checkbox',
     '#title' => t('Administrators see all fields'),
-    '#description' => t('Select this box to let users with the <a href="@access-control-page">administer conditional fields</a> permission to view all controlled fields of a node.', array('@access-control-page' => url('admin/user/access', NULL, 'module-conditional_fields'))),
+    '#description' => t('Select this box to let users with the <a href="@access-control-page">administer conditional fields</a> permission to view all controlled fields of a node.', array('@access-control-page' => url('admin/user/permissions', array('fragment' => 'module-conditional_fields')))),
     '#default_value' => variable_get('c_fields_show_all_'. $type, 0)
   );
   $form['reset'] = array(
@@ -111,15 +111,16 @@
   return $form;
 }
 
-function _conditional_fields_admin_submit($form_id, $form_values) {
-  if ($form_values['reset'] == 1) {
-    conditional_fields_node_type_delete($form_values['type']);
+function _conditional_fields_admin_submit($form, &$form_state) {
+  $type = $form['#parameters'][2];
+  if ($form_state['values']['reset'] == 1) {
+    conditional_fields_node_type_delete($type);
     $message = t(' All configured conditional fields have been deleted.');
   }
-  variable_set('c_fields_js_'. $form_values['type'], $form_values['js']);  
-  variable_set('c_fields_view_'. $form_values['type'], $form_values['orphaned_view']);
-  variable_set('c_fields_edit_'. $form_values['type'], $form_values['orphaned_edit']);
-  variable_set('c_fields_show_all_'. $form_values['type'], $form_values['show_all']);
+  variable_set('c_fields_js_'. $type, $form_state['values']['js']);  
+  variable_set('c_fields_view_'. $type, $form_state['values']['orphaned_view']);
+  variable_set('c_fields_edit_'. $type, $form_state['values']['orphaned_edit']);
+  variable_set('c_fields_show_all_'. $type, $form_state['values']['show_all']);
 
   drupal_set_message(t('Conditional fields options for this content type saved.') . $message);
 }
@@ -162,8 +163,8 @@
       }
       
       // Create an array with the selected controlling field's values
-      $current_values= array();
-      foreach($node->{$field['control_field_name']} as $value){
+      $current_values = array();
+      foreach ($node->{$field['control_field_name']} as $value) {
          $current_values[] = $value['value'];
       }
 
@@ -221,9 +222,10 @@
 /**
  * Implementation of hook_form_alter()
  */
-function conditional_fields_form_alter($form_id, &$form) {
+function conditional_fields_form_alter(&$form, $form_state, $form_id) {
+
   switch ($form_id) {
-    case '_content_admin_field':
+    case 'content_field_edit_form':
       conditional_fields_content_admin_field($form);
       break;
     case 'fieldgroup_edit_group_form':
@@ -249,8 +251,8 @@
  * Alteration of the field editing form
  */
 function conditional_fields_content_admin_field(&$form) {
+  $type = array();
   $type = content_types($form['type_name']['#value']);
-  
   // Load conditional fields data.
   $data = conditional_fields_load_data($type['type']);
 
@@ -267,16 +269,18 @@
   //   - Fields not controlled by this one
   //   - Fields not in a group (if this field isn't in a group), or fields in the same group.
   //       Since the latter can change depending on user choice, we allow them for now, and check them on validation
+  $available_fields = array();
   foreach ($type['fields'] as $field) {
     if ($field['field_name'] != $form['field_name']['#value'] && !$controlled_fields[$field['field_name']]) {
-      if ($allowed_values[$field['field_name']] = conditional_fields_allowed_values($field)) {
-        $available_fields[$field['field_name']] = $field;
-      }
-    }
+       if ($allowed_values[$field['field_name']] = conditional_fields_allowed_values($field)) {
+         $available_fields[$field['field_name']] = $field;
+       }
+     }
   }
   
   // Add extra validation funcion
   $form['#validate'] = array_merge(array('conditional_fields_content_admin_field_validate' => array($controlled_fields)), $form['#validate']);
+
     
   if (isset($available_fields)) {
     // Add controlled fields notice
@@ -298,7 +302,7 @@
     }
     else {
       // Add extra submission funcion
-      $form['#submit'] = array_merge(array('conditional_fields_forms_submit' => array($type['type'], $form['field_name']['#value'])), $form['#submit']);
+      $form['#submit'] = array_merge(array('conditional_fields_forms_submit'), $form['#submit']);
     }
     
     $form['widget'] = _conditional_fields_build_form($type, $form['widget'], $form['field_name']['#value'], $controlled_fields, $available_fields, $allowed_values, 'field', $description);
@@ -335,7 +339,7 @@
     $form = _conditional_fields_build_form($type, $form, $form['group_name']['#default_value'], array(), $available_fields, $allowed_values, 'group', '');
 
     // Add extra submission funcion
-    $form['#submit'] = $form['#submit'] + array('conditional_fields_forms_submit' => array($type['type'], $form['group_name']['#default_value']));
+    $form['#submit'] = array_merge(array('conditional_fields_forms_submit'), $form['#submit']);
   }    
   return;
 }
@@ -363,6 +367,7 @@
   if (empty($controlled_fields)) {  // Disallow nested conditional fields
     $default_values = conditional_fields_default_values($control_field, $available_fields);
     // Create selection lists
+    
     foreach ($available_fields as $field) {
       $allowed_values[$field['field_name']] = array('conditional_field_no_value' => t('Not set')) + $allowed_values[$field['field_name']];
       $form['conditional_fields'][$field['field_name']] = array(
@@ -370,46 +375,48 @@
         '#multiple' => TRUE,
         '#title' => t($field['widget']['label']),
         // To do: set right url for groups
-        '#description' => t('<a href="@edit-field">Edit the allowed values</a> of the %field-name field.', array('@edit-field' => url('admin/content/types/'. $type['url_str'] .'/fields/'. $field['field_name'], 'destination=admin/content/types/'. arg(3) .'/fields/'. arg(5), 'edit-allowed-values'), '%field-name' => t($field['widget']['label']))),
+        '#description' => t('<a href="@edit-field">Edit the allowed values</a> of the %field-name field.', array('@edit-field' => url('admin/content/types/'. $type['url_str'] .'/fields/'. $field['field_name'], array('query' => 'destination=admin/content/types/'. arg(3) .'/fields/'. arg(5), 'fragment' => 'edit-allowed-values')), '%field-name' => t($field['widget']['label'])) ),
         '#options' => $allowed_values[$field['field_name']],
         '#default_value' => isset($default_values[$field['field_name']]) && $default_values[$field['field_name']] != FALSE ? $default_values[$field['field_name']] : 'conditional_field_no_value',
       );
     }
+    
   }
+  
   return $form;
 }
 
 /**
  * Check selection of values
  */
-function conditional_fields_content_admin_field_validate($form_id, $form_values, $form, $controlled_fields) {
+function conditional_fields_content_admin_field_validate($form, &$form_state, $type, $controlled_fields) {
   // Allowed fields checked here are:
   // - If field is in a group: fields in the same group
   // - If field is not in a group: fields not in a group
   
   // We check both controlling (available) and controlled fields
-  $conditional_fields = array_merge((array)$form_values['conditional_fields'], $controlled_fields);
+  $conditional_fields = array_merge((array)$form_state['conditional_fields'], $controlled_fields);
   
   foreach ($conditional_fields as $available_field => $trigger_values) {
     // Disallow selecting Not set and values at the same time
     if ($trigger_values['conditional_field_no_value'] && count($trigger_values) > 1) {
-      form_error($form['widget']['conditional_fields'][$available_field], t("You cannot select 'Not set' and other values at the same time."));
+      form_error($form_state['widget']['conditional_fields'][$available_field], t("You cannot select 'Not set' and other values at the same time."));
     }
     else if (module_exists('fieldgroup') && !$trigger_values['conditional_field_no_value']) {
-      if ($group = $form_values['group']) { // If the field is in a group
+      if ($group = $form_state['group']) { // If the field is in a group
         // If the available field IS a group, disallow it
         if (substr($available_field, 0, 6) == 'group_') {
           form_error($form, t("This field is controlling the group %field. You can only control a group from a field not in a group.", array('%field' => $available_field)));
         }
         // If the available field is not in the same group, disallow it.
-        else if ($group != fieldgroup_get_group($form_values['type_name'], $available_field)) {
-          form_error($form['widget']['conditional_fields'][$available_field], t("The field %field is not in the same group that you selected (%group). You can only control a field in a group from another field in the same group.", array('%field' => $available_field, '%group' => $group)));
+        else if ($group != fieldgroup_get_group($form_state['type_name'], $available_field)) {
+          form_error($form_state['widget']['conditional_fields'][$available_field], t("The field %field is not in the same group that you selected (%group). You can only control a field in a group from another field in the same group.", array('%field' => $available_field, '%group' => $group)));
         }
       }
       else { // If the field is in not in a group
         // If the available field is in a group, disallow it.
-        if ($available_field_group = fieldgroup_get_group($form_values['type_name'], $available_field)) {
-          form_error($form['widget']['conditional_fields'][$available_field], t("The field %field is in the group %group. You can only control a field in a group from another field in the same group.", array('%field' => $available_field, '%group' => $available_field_group)));
+        if ($available_field_group = fieldgroup_get_group($form_state['type_name'], $available_field)) {
+          form_error($form_state['widget']['conditional_fields'][$available_field], t("The field %field is in the group %group. You can only control a field in a group from another field in the same group.", array('%field' => $available_field, '%group' => $available_field_group)));
         }
       }
     }
@@ -417,17 +424,20 @@
   
   // Warn user on allowed values change
   $controlling_count = count($controlled_fields, 1);
-  if ($controlling_count > 2 && $form_values['allowed_values'] != $form['field']['allowed_values']['#default_value']) {
+  if ($controlling_count > 2 && $form_state['allowed_values'] != $form_state['field']['allowed_values']['#default_value']) {
     drupal_set_message(t('If you removed one or more allowed value from the field, you probably have to edit its controlled Conditional fields and/or fieldgroups settings.'), 'error');
   }
 }
 
+
 /**
  * Handle saving of conditional field settings.
  * The controlled field can be either a field or a group
  */
-function conditional_fields_forms_submit($form_id, &$form, $type, $controlled_field) {
-  foreach ($form['conditional_fields'] as $controlling_field => $trigger_values) {
+function conditional_fields_forms_submit($form, &$form_state) {
+  $controlled_field = $form_state['values']['field_name'];
+  $type = $form['#field']['type_name'];
+  foreach ($form_state['values']['conditional_fields'] as $controlling_field => $trigger_values) {
     // If the row already exists
     if (db_result(db_query("SELECT COUNT(*) FROM {conditional_fields} WHERE control_field_name = '%s' AND field_name = '%s' AND type = '%s'", $controlling_field, $controlled_field, $type))) {
       // If no value is set, delete the entry, else update it
@@ -507,7 +517,7 @@
   // To do: look if we should make this themeable
   foreach ($data as $row) {
     // Add javascript settings for this field
-    $settings['controlling_fields']['#conditional-'. form_clean_id($row['control_field_name'])]['#conditional-'. form_clean_id($row['field_name'])] = array('field_id' => '#conditional-'. form_clean_id($row['field_name']), 'trigger_values' => $row['trigger_values']);
+    $settings['controlling_fields']['#conditional-'. my_form_clean_id($row['control_field_name'])]['#conditional-'. my_form_clean_id($row['field_name'])] = array('field_id' => '#conditional-'. my_form_clean_id($row['field_name']), 'trigger_values' => $row['trigger_values']);
     // To do: feature, add an array of controlled fields to js to allow for multiple controlling fields for a field.
     
     // Build helper arrays
@@ -538,7 +548,7 @@
       // Groups
       if ($controlled_fields[$element]) {
         // Group markup is still hardcoded.
-        $form[$element]['#prefix'] = '<div id="conditional-'. form_clean_id($element) .'" class="conditional-field controlled-field">';
+        $form[$element]['#prefix'] = '<div id="conditional-'. my_form_clean_id($element) .'" class="conditional-field controlled-field">';
         $form[$element]['#suffix'] = '</div>';
       }
       // Fields in groups
@@ -578,7 +588,7 @@
 /**
  * Validation for node editing form.
  */
-function conditional_fields_node_editing_form_validate($form_id, $form_values, $form, $data, $required_fields) {
+function conditional_fields_node_editing_form_validate($form, $form_state, $form, $data, $required_fields) {
   // If controlled required field (or required field in a controlled group) was triggered, set error
   foreach ($data as $row) {
     if ($required_fields[$row['field_name']] && conditional_fields_is_triggered($form_values[$row['control_field_name']], $row['trigger_values'])) {
@@ -596,7 +606,7 @@
   // This is to catch remaining fields (required fields in controlled groups)
   foreach ((array)$required_fields as $field_in_group) {
     if (!$control_field || $control_field['field_name'] != $field_in_group['in_group']) {
-      $control_field = db_fetch_array(db_query("SELECT control_field_name, field_name, trigger_values FROM {conditional_fields} WHERE field_name = '%s' AND type = '%s'", $field_in_group['in_group'], $form_values['type']));
+      $control_field = db_fetch_array(db_query("SELECT control_field_name, field_name, trigger_values FROM {conditional_fields} WHERE field_name = '%s' AND type = '%s'", $field_in_group['in_group'], $form_state['type']));
     }
     if ($control_field && conditional_fields_is_triggered($form_values[$control_field['control_field_name']], unserialize($control_field['trigger_values']))) {
       conditional_fields_find_required_field($form[$field_in_group['in_group']][$field_in_group['field']], TRUE);
@@ -671,6 +681,7 @@
       }
       $data['flat'][$type] = array_unique($data['flat'][$type]);
     }
+    
   }
   return $data[$structure][$type];
 }
@@ -762,14 +773,14 @@
 /*
  * Clean conditional fields settings pertaining to this removed field
  */
-function _conditional_fields_content_admin_field_remove_submit($form_id, $form_values) {
-  conditional_fields_remove_field_settings($form_values['field_name']);
+function _conditional_fields_content_admin_field_remove_submit($form, $form_state) {
+  conditional_fields_remove_field_settings($form_state['field_name']);
 }
 
 /*
  * Clean conditional fields settings pertaining to this removed group
  */
-function _conditional_fields_fieldgroup_remove_group_submit($form_id, $form_values, $group_name) {
+function _conditional_fields_fieldgroup_remove_group_submit($form, $form_state, $group_name) {
   conditional_fields_remove_field_settings($group_name);
 }
 
@@ -868,47 +879,63 @@
  * This causes Drupal to render conditionally required fields in a way that
  * indicates they are required when visible.  e.g., with an asterisk.
  */
-function conditional_fields_set_required_for_render($item) {
-  if ($item['#required_field']) {
-    $item['#required'] = TRUE;
-  }
-  else {
-    foreach(element_children($item) as $child) {
-      conditional_fields_set_required_for_render($item[$child]);
-    }
-  }
+function conditional_fields_set_required_for_render(&$item) {
+   if ($item['#required_field']) {
+     $item['#required'] = TRUE;
+   }
+   else {
+     foreach (element_children($item) as $child) {
+       conditional_fields_set_required_for_render($item[$child]);
+     }
+   }
 }
 
+// TODO Reescrever este wrapper de forma a remover os dígitos do final de forma genérica.
+// Provavelmente teremos de usar regexes. Aí é só testar contra switchField no js.
 /**
- * Themes a conditional markup for a field label.
+ * Um wrapper para form_clean_id.
  */
-function theme_conditional_field_conditional($label) {
-  return t(' <span class="marker">@label</span>', array('@label' => $label));
+function my_form_clean_id($id = NULL, $flush = FALSE) {
+  $id = str_replace(array('][', '_', ' '), '-', $id);
+  return $id;
 }
 
+
 /**
- * Themes the wrappers around conditional fields.
- * Note that if you modify the id and classes of these fields,
- * you have to modify conditional_fields.js accordingly.
- */
+* Themes the wrappers around conditional fields.
+* Note that if you modify the id and classes of these fields,
+* you have to modify conditional_fields.js accordingly.
+*/
 function theme_conditional_fields_form_item($item) {
-  if ($id = $item['#controlling_field']) {
-    $output = '<div id="conditional-'. form_clean_id($id) .'" class="conditional-field controlling-field">'. drupal_render($item) .'</div>';
-  }
-  else if ($id = $item['#controlled_field']) {
-    conditional_fields_set_required_for_render(&$item);
-    if ($item['#type'] == 'markup') {
-      /* Avoid unnecessary divs in multiple fields */
-      $item['#prefix'] = '<div id="conditional-'. form_clean_id($id) .'" class="conditional-field controlled-field">';
-      $item['#suffix'] = '</div>';
-      $output = drupal_render($item); 
-    }
-    else {
-      $output = '<div id="conditional-'. form_clean_id($id) .'" class="conditional-field controlled-field">'. drupal_render($item) .'</div>';
-    }
-  }
-  else {
-    $output = drupal_render($item); 
-  }
-  return $output;
+   if ($id = $item['#controlling_field']) {
+     $output = '<div id="conditional-'. my_form_clean_id($id) .'" class="conditional-field controlling-field">'. drupal_render($item) .'</div>';
+   }
+   else if ($id = $item['#controlled_field']) {
+     conditional_fields_set_required_for_render($item);
+     if ($item['#type'] == 'markup') {
+       /* Avoid unnecessary divs in multiple fields */
+       $item['#prefix'] = '<div id="conditional-'. my_form_clean_id($id) .'" class="conditional-field controlled-field">';
+       $item['#suffix'] = '</div>';
+       $output = drupal_render($item); 
+     }
+     else {
+       $output = '<div id="conditional-'. my_form_clean_id($id) .'" class="conditional-field controlled-field">'. drupal_render($item) .'</div>';
+     }
+   }
+   else {
+     $output = drupal_render($item); 
+   }
+   return $output;
 }
+
+/**
+* Implementation of hook_theme().
+*/
+function conditional_fields_theme() {
+    return array(
+        'conditional_fields_form_item' => array(
+            'arguments' => array('item' => NULL),
+        ),
+    );
+}
+
diff -Naur conditional_fields-5/conditional-field.tpl.php conditional_fields/conditional-field.tpl.php
--- conditional_fields-5/conditional-field.tpl.php	1969-12-31 16:00:00.000000000 -0800
+++ conditional_fields/conditional-field.tpl.php	2008-12-02 09:47:06.000000000 -0800
@@ -0,0 +1 @@
+ <span class="marker"><?php print $label; ?></span>
\ No newline at end of file
