diff --git a/core/lib/Drupal/Core/Field/FieldItemList.php b/core/lib/Drupal/Core/Field/FieldItemList.php
index 1067ae8..439a498 100644
--- a/core/lib/Drupal/Core/Field/FieldItemList.php
+++ b/core/lib/Drupal/Core/Field/FieldItemList.php
@@ -296,14 +296,15 @@ public function getConstraints() {
    * {@inheritdoc}
    */
   public function defaultValuesForm(array &$form, FormStateInterface $form_state) {
+    // Place the input in a separate place in the submitted values tree.
     if (empty($this->getFieldDefinition()->default_value_callback)) {
-      // Place the input in a separate place in the submitted values tree.
-      $widget = $this->defaultValueWidget($form_state);
+      // FieldTypes without a default widget are NULL.
+      if ($widget = $this->defaultValueWidget($form_state)) {
+        $element = array('#parents' => array('default_value_input'));
+        $element += $widget->form($this, $element, $form_state);
 
-      $element = array('#parents' => array('default_value_input'));
-      $element += $widget->form($this, $element, $form_state);
-
-      return $element;
+        return $element;
+      }
     }
   }
 
diff --git a/core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php b/core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php
index 42f776a..db56672 100644
--- a/core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php
+++ b/core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php
@@ -10,6 +10,7 @@
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Field\FieldItemInterface;
 use Drupal\Core\Field\FieldItemList;
+use Drupal\Core\Form\FormState;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -155,4 +156,20 @@ public function testEqualsEmptyItems() {
     $this->assertEquals(TRUE, $field_list_a->equals($field_list_b));
   }
 
+  /**
+   * @covers ::defaultValuesForm
+   *
+   * @test
+   */
+  public function defaultValuesForm() {
+    $field_definition = $this->getMock('DrupalFormStateInterface\Core\Field\FieldDefinitionInterface');
+    $field_list = $this->getMock('Drupal\Core\Field\FieldItemList', ['defaultValueWidget'], [$field_definition]);
+    $field_list->expects($this->any())
+      ->method('defaultValueWidget')
+      ->willReturn(NULL);
+    $form = [];
+    $form_state = new FormState();
+
+    $this->assertNull($field_list->defaultValuesForm($form, $form_state));
+  }
 }
