diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
index 12194a3..f0349a1 100644
--- a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
@@ -155,8 +155,8 @@ public function buildForm(FieldableEntityInterface $entity, array &$form, FormSt
 
     // Let each widget generate the form elements.
     foreach ($entity as $name => $items) {
+      $items->filterEmptyItems();
       if ($widget = $this->getRenderer($name)) {
-        $items->filterEmptyItems();
         $form[$name] = $widget->form($items, $form, $form_state);
         $form[$name]['#access'] = $items->access('edit');
 
@@ -165,6 +165,16 @@ public function buildForm(FieldableEntityInterface $entity, array &$form, FormSt
         // directly.
         $form[$name]['#weight'] = $this->getComponent($name)['weight'];
       }
+      elseif (isset($this->hidden[$name])) {
+        // Hidden field.
+        $definition = $this->getFieldDefinition($name);
+        $widget = $this->pluginManager->getInstance(array(
+          'field_definition' => $definition,
+          'form_mode' => $this->originalMode,
+        ));
+        $form[$name] = $widget->form($items, $form, $form_state);
+        $form[$name]['#access'] = FALSE;
+      }
     }
 
     // Add a process callback so we can assign weights and hide extra fields.
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/ChangedItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/ChangedItem.php
index b661b3e..07852fc 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/ChangedItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/ChangedItem.php
@@ -15,6 +15,8 @@
  *   label = @Translation("Last changed"),
  *   description = @Translation("An entity field containing a UNIX timestamp of when the entity has been last updated."),
  *   no_ui = TRUE,
+ *   default_formatter = "timestamp",
+ *   default_widget = "datetime_timestamp",
  *   constraints = {
  *     "ComplexData" = {"value" = {"EntityChanged" = {}}}
  *   }
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/CreatedItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/CreatedItem.php
index 367a1bc..a44492c 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/CreatedItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/CreatedItem.php
@@ -16,6 +16,7 @@
  *   description = @Translation("An entity field containing a UNIX timestamp of when the entity has been created."),
  *   no_ui = TRUE,
  *   default_formatter = "timestamp",
+ *   default_widget = "datetime_timestamp",
  * )
  */
 class CreatedItem extends TimestampItem {
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TimestampItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TimestampItem.php
index d355287..e928302 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TimestampItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TimestampItem.php
@@ -20,6 +20,7 @@
  *   description = @Translation("An entity field containing a UNIX timestamp value."),
  *   no_ui = TRUE,
  *   default_formatter = "timestamp",
+ *   default_widget = "datetime_timestamp",
  *   constraints = {
  *     "ComplexData" = {
  *       "value" = {
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
index 3069af3..32f78bd 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
@@ -65,7 +65,8 @@ public function settingsSummary() {
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element['value'] = $element + array(
       '#type' => 'checkbox',
-      '#default_value' => !empty($items[0]->value),
+      // Boolean values are stored as integers.
+      '#default_value' => (int) !empty($items[0]->value),
     );
 
     // Override the title from the incoming $element.
diff --git a/core/modules/field/src/Tests/FieldAttachOtherTest.php b/core/modules/field/src/Tests/FieldAttachOtherTest.php
index d3e65b3..873422a 100644
--- a/core/modules/field/src/Tests/FieldAttachOtherTest.php
+++ b/core/modules/field/src/Tests/FieldAttachOtherTest.php
@@ -279,7 +279,7 @@ function testEntityFormDisplayBuildForm() {
     $form_state = new FormState();
     $display->buildForm($entity, $form, $form_state);
 
-    $this->assertFalse(isset($form[$this->fieldTestData->field_name]), 'The first field does not exist in the form');
+    $this->assertFalse($form[$this->fieldTestData->field_name]['#access'], 'The first field has had #access set to FALSE in the form.');
     $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->field_2->getLabel(), "Second field's form title is {$this->fieldTestData->field_2->getLabel()}");
     for ($delta = 0; $delta < $this->fieldTestData->field_storage_2->getCardinality(); $delta++) {
       // field_test_widget uses 'textfield'
diff --git a/core/modules/quickedit/src/Form/QuickEditFieldForm.php b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
index a1516fe..e341c24 100644
--- a/core/modules/quickedit/src/Form/QuickEditFieldForm.php
+++ b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
@@ -187,7 +187,7 @@ protected function buildEntity(array $form, FormStateInterface $form_state) {
 
     // @todo Refine automated log messages and abstract them to all entity
     //   types: http://drupal.org/node/1678002.
-    if ($entity->getEntityTypeId() == 'node' && $entity->isNewRevision() && !isset($entity->revision_log)) {
+    if ($entity->getEntityTypeId() == 'node' && $entity->isNewRevision() && !isset($entity->revision_log->value)) {
       $entity->revision_log = t('Updated the %field-name field through in-place editing.', array('%field-name' => $entity->get($field_name)->getFieldDefinition()->getLabel()));
     }
 
