diff --git a/field_collection.module b/field_collection.module
index fe9911c..a283169 100644
--- a/field_collection.module
+++ b/field_collection.module
@@ -581,6 +581,8 @@ function field_collection_field_info() {
       // Add entity property info.
       'property_type' => 'field_collection_item',
       'property_callbacks' => array('field_collection_entity_metadata_property_callback'),
+      // Enable microdata output.
+      'microdata' => TRUE,
     ),
   );
 }
@@ -849,6 +851,15 @@ function field_collection_field_formatter_view($entity_type, $entity, $field, $i
 
     case 'field_collection_view':
 
+      $add_microdata = module_exists('microdata');
+      if ($add_microdata) {
+        // Get the itemprop that would be placed on the field wrapper and
+        // instead place it using the formatter. It is required that all the
+        // microdata attributes for the item be placed in the same tag.
+        $field_itemprop = $entity->microdata[$field['field_name']]['#attributes'];
+        $entity->microdata[$field['field_name']]['#attributes'] = array();
+      }
+
       $element['#attached']['css'][] = drupal_get_path('module', 'field_collection') . '/field_collection.theme.css';
       $view_mode = !empty($display['settings']['view_mode']) ? $display['settings']['view_mode'] : 'full';
       foreach ($items as $delta => $item) {
@@ -858,6 +869,9 @@ function field_collection_field_formatter_view($entity_type, $entity, $field, $i
           $element[$delta]['#attributes']['class'][] = 'field-collection-view';
           $element[$delta]['#attributes']['class'][] = 'clearfix';
           $element[$delta]['#attributes']['class'][] = drupal_clean_css_identifier('view-mode-' . $view_mode);
+          if ($add_microdata) {
+            $element[$delta]['#attributes'] = array_merge($element[$delta]['#attributes'], $field_itemprop, $field_collection->microdata['#attributes']);
+          }
 
           $links = array(
             '#theme' => 'links__field_collection_view',
