diff --git flexifield-widget.inc flexifield-widget.inc
index 96c8f20..4ef9258 100644
--- flexifield-widget.inc
+++ flexifield-widget.inc
@@ -28,6 +28,16 @@ function flexifield_fieldset_process($aElement, $aSubmittedElementData, $aFormSt
     if (isset($aElement['#value'][$sChildFieldName])) {
       $aFormState['values'][$sChildFieldName] = $aElement['#value'][$sChildFieldName];
     }
+    // Child field item form element requirement depends on child field 
+    // requirement, and child field item delta. We want it to depend on 
+    // flexifield delta also, so we set up fake "required" property for the 
+    // child field, that depends on flexifield delta. This way child field item
+    // form element becomes required if all the following conditions are met: 
+    //   child field is set to 'required'
+    //   flexifield delta is 0
+    //   child field delta is 0 
+    $aChildFieldSettings['required'] = $aElement['#delta'] == 0 && $aChildFieldSettings['required'];
+    
     $aElement += (array) content_field_form($aForm, $aFormState, $aChildFieldSettings);
     drupal_alter('flexifield_child_field_form', $aElement[$sChildFieldName], $aForm, $aFormState, $aChildFieldSettings);
     if (isset($aElement[$sChildFieldName]['#theme']) && ($aElement[$sChildFieldName]['#theme'] === 'content_multiple_values')) {
