--- conditional_fields/conditional_fields.module	2015-06-08 10:53:38.000000000 -0400
+++ modules/conditional_fields/conditional_fields.module	2017-03-13 15:15:30.225907088 -0400
@@ -265,6 +265,9 @@ function conditional_fields_element_afte
       if (!isset($form['#conditional_fields'][$field['#field_name']]['dependees'][$id])) {
         conditional_fields_attach_dependency($form, array('#field_name' => $dependency['dependee']), $field, $dependency['options'], $id);
       }
+      else {
+	conditional_fields_attach_dependency($form, array('#field_name' => $dependency['dependee']), $field, $dependency['options'], $id, true);
+      }
     }
   }
 
@@ -277,6 +280,9 @@ function conditional_fields_element_afte
       if (!isset($form['#conditional_fields'][$field['#field_name']]['dependents'][$id])) {
         conditional_fields_attach_dependency($form, $field, array('#field_name' => $dependency['dependent']), $dependency['options'], $id);
       }
+      else {
+	conditional_fields_attach_dependency($form, $field, array('#field_name' => $dependency['dependent']), $dependency['options'], $id, true);
+      }
     }
   }
 
@@ -353,7 +359,7 @@ function conditional_fields_element_afte
  *   Note that you don't need to manually set all these options, since default
  *   settings are always provided.
  */
-function conditional_fields_attach_dependency(&$form, $dependee, $dependent, $options, $id = 0) {
+function conditional_fields_attach_dependency(&$form, $dependee, $dependent, $options, $id = 0, $nested=FALSE) {
   $options += conditional_fields_dependency_default_options();
 
   // The absence of the $id parameter identifies a custom dependency.
@@ -380,15 +386,35 @@ function conditional_fields_attach_depen
     }
   }
 
+  if($nested)
+  {
+	$field_name_keys = array_keys($form['#conditional_fields']);
+	$current_index = 0;
+        foreach ($field_name_keys as  $field_name_key){
+		if(strpos($field_name_key, $dependee['#field_name']) !== false){
+			$current_index++;
+		}
+        }
+  }
+
   // Attach dependee.
   // Use the #array_parents property of the dependee instead of #field_parents
   // since we will need access to the full structure of the widget.
   if (isset($dependee['#parents'])) {
+   if($nested) {
+	   $form['#conditional_fields'][$dependee['#field_name'] . '_count' . $current_index]['parents'] = $dependee['#array_parents'];
+	   $form['#conditional_fields'][$dependee['#field_name'] . '_count' . $current_index]['dependents'][$id] = array(
+	      'dependent' => $dependent['#field_name'] . '_count' . $current_index,
+	      'options'   => $options,
+	   );
+   }
+   else {
     $form['#conditional_fields'][$dependee['#field_name']]['parents'] = $dependee['#array_parents'];
     $form['#conditional_fields'][$dependee['#field_name']]['dependents'][$id] = array(
       'dependent' => $dependent['#field_name'],
       'options'   => $options,
     );
+   }
   }
 
   // Attach dependent.
@@ -399,11 +425,20 @@ function conditional_fields_attach_depen
     $dependent_parents = $dependent['#parents'];
   }
   if (isset($dependent_parents)) {
-    $form['#conditional_fields'][$dependent['#field_name']]['field_parents'] = $dependent_parents;
-    $form['#conditional_fields'][$dependent['#field_name']]['dependees'][$id] = array(
-      'dependee' => $dependee['#field_name'],
-      'options'  => $options,
-    );
+    if($nested) {
+	    $form['#conditional_fields'][$dependent['#field_name'] . '_count' . $current_index]['field_parents'] = $dependent_parents;
+	    $form['#conditional_fields'][$dependent['#field_name'] . '_count' . $current_index]['dependees'][$id] = array(
+	      'dependee' => $dependee['#field_name'] . '_count' . $current_index,
+	      'options'  => $options,
+	    );
+    }
+    else {
+	$form['#conditional_fields'][$dependent['#field_name']]['field_parents'] = $dependent_parents;
+	$form['#conditional_fields'][$dependent['#field_name']]['dependees'][$id] = array(
+		'dependee' => $dependee['#field_name'],
+		'options'  => $options,
+	);
+    }
   }
 
   // Actual processing is done in conditional_fields_form_after_build().
@@ -435,6 +470,10 @@ function conditional_fields_form_after_b
       continue;
     }
 
+    if(strpos($dependent, "_count") !== false) {
+	$dependent = substr($dependent, 0, strpos($dependent, "_count"));
+    }
+
     $dependent_location = array_merge($dependent_info['field_parents'], array($dependent));
     $dependent_form_field = drupal_array_get_nested_value($form, $dependent_location);
 
