diff --git a/field_collection.module b/field_collection.module
index fe9911c..0c2acc4 100644
--- a/field_collection.module
+++ b/field_collection.module
@@ -688,6 +688,13 @@ function field_collection_item_is_empty(FieldCollectionItemEntity $item) {
         // If at least one collection-field is not empty; the
         // field collection item is not empty.
         foreach ($item->{$field_name}[$langcode] as $field_item) {
+          // Handle boolean checkbox separately to enable evaluation to empty.
+          // See http://drupal.org/node/1339868.
+          if (isset($instance['widget']['settings']['always_empty']) && $instance['widget']['settings']['always_empty'] == 1 && $field_item['value'] == 0) {
+            // Evaluate to empty.
+            break;
+          }
+
           if (!module_invoke($field['module'], 'field_is_empty', $field_item, $field)) {
             return FALSE;
           }
@@ -1456,3 +1463,32 @@ function field_collection_devel_generate($object, $field, $instance, $bundle) {
 
   return array('value' => $field_collection->item_id);
 }
+
+/**
+ * Implements hook_field_widget_info_alter().
+ *
+ * Widget setting enabling an unchecked boolean checkbox to evaluate to empty.
+ * See http://drupal.org/node/1339868.
+ */
+function field_collection_field_widget_info_alter(&$info) {
+  $info['options_onoff']['settings']['always_empty'] = 1;
+  $info['options_buttons']['settings']['always_empty'] = 1;
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ *
+ * Widget setting form enabling an unchecked boolean checkbox to evaluate to empty.
+ * See http://drupal.org/node/1339868.
+ */
+function field_collection_form_field_ui_field_edit_form_alter(&$form, $form_state) {
+  if ($form['#field']['type'] == 'list_boolean' && $form['#instance']['entity_type'] == 'field_collection_item') {
+    $form['instance']['widget']['settings']['always_empty'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('The off state should mean an empty field'),
+      '#description' => t('If the off value does not evaluate to empty a new field collection item will be created every time the host entity is saved.'),
+      '#default_value' => $form['#instance']['widget']['settings']['always_empty'],
+      '#weight' => -1,
+    );
+  }
+}
