diff --git a/makemeeting.module b/makemeeting.module
index ad3c984..0ecfb03 100755
--- a/makemeeting.module
+++ b/makemeeting.module
@@ -254,7 +254,7 @@ function makemeeting_field_widget_form(&$form, &$form_state, $field, $instance,
   }
 
   // Calculate the choice and suggestion counts
-  $form_state['choice_count'] = isset($form_state['choice_count']) ? $form_state['choice_count'] : 1;
+  $form_state['choice_count'] = isset($form_state['choice_count']) ? $form_state['choice_count'] : 0;
   if (empty($form_state['suggestion_count'])) {
     $form_state['suggestion_count'] = 1;
   }
@@ -278,12 +278,18 @@ function makemeeting_field_widget_form(&$form, &$form_state, $field, $instance,
     }
   }
 
-  // Add initial or additional choices.
-  $existing_delta = $delta;
-  for (; $delta < $form_state['choice_count']; $delta++) {
-    $key = 'new:' . ($delta - $existing_delta);
-    $element['choices_wrapper']['choices'][$key] =
-      _makemeeting_choice_form($key, '', NULL, $form_state['suggestion_count']);
+  // Add initial choice if new entity.
+  list($entity_id) = entity_extract_ids($element['#entity_type'], $element['#entity']);
+  if(!isset($entity_id) && !$form_state['choice_count']) {
+    $form_state['choice_count'] = 1;
+  }
+  if ($form_state['choice_count']) {
+    $existing_delta = $delta;
+    for (; $delta < $form_state['choice_count']; $delta++) {
+      $key = 'new:' . ($delta - $existing_delta);
+      $element['choices_wrapper']['choices'][$key] =
+        _makemeeting_choice_form($key, '', NULL, $form_state['suggestion_count']);
+    }
   }
 
   // We prefix our buttons with 'makemeeting' to avoid conflicts
@@ -381,8 +387,10 @@ function makemeeting_choices_submit($form, &$form_state) {
 
   // Affect timestamp as key to each choice
   $choices = array();
-  foreach ($element['choices'] as $choice) {
-    $choices['choices'][_makemeeting_date_timestamp($choice['chdate'])] = $choice;
+  if (isset($element['choices'])) {
+    foreach ($element['choices'] as $choice) {
+      $choices['choices'][_makemeeting_date_timestamp($choice['chdate'])] = $choice;
+    }
   }
 
   // Handle other operations
@@ -459,12 +467,9 @@ function makemeeting_answer_js($form, $form_state) {
 
 /**
  * Implements hook_field_is_empty().
- *
- * This field cannot be empty as it will always
- * have a default choice of today's date
  */
-function makemeeting_field_is_empty() {
-  return FALSE;
+function makemeeting_field_is_empty($item) {
+  return empty($item['choices']);
 }
 
 /**
