diff --git a/core/modules/node/lib/Drupal/node/NodeFormController.php b/core/modules/node/lib/Drupal/node/NodeFormController.php
index d562e51..672c8ef 100644
--- a/core/modules/node/lib/Drupal/node/NodeFormController.php
+++ b/core/modules/node/lib/Drupal/node/NodeFormController.php
@@ -349,12 +349,15 @@ public function submit(array $form, array &$form_state) {
     $node = parent::submit($form, $form_state);
 
     // Save as a new revision if requested to do so.
-    if (!empty($form_state['values']['revision'])) {
+    if (!empty($form_state['values']['revision']) && $form_state['values']['revision'] != FALSE) {
       $node->setNewRevision();
       // If a new revision is created, save the current user as revision author.
       $node->setRevisionCreationTime(REQUEST_TIME);
       $node->setRevisionAuthorId(\Drupal::currentUser()->id());
     }
+    else {
+      $node->setNewRevision(FALSE);
+    }
 
     $node->validated = TRUE;
     foreach (\Drupal::moduleHandler()->getImplementations('node_submit') as $module) {
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeCreateNewRevisionTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeCreateNewRevisionTest.php
new file mode 100644
index 0000000..9d03107
--- /dev/null
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeCreateNewRevisionTest.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\node\Tests\NodeRevisionsTest.
+ */
+
+namespace Drupal\node\Tests;
+
+use Drupal\Core\Language\Language;
+
+/**
+ * Tests the node revision functionality.
+ */
+class NodeCreateNewRevisionTest extends NodeTestBase {
+  protected $nodes;
+  protected $logs;
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Node create new revision',
+      'description' => "Edit a node with revisions turned on by default and check that revisions are not created if 'Create new revision' option is unchecked.",
+      'group' => 'Node',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    // Create and log in user.
+    $web_user = $this->drupalCreateUser(
+      array(
+        'administer nodes',
+        'edit any page content'
+      )
+    );
+
+    $this->drupalLogin($web_user);
+  }
+
+  /**
+   * Checks that unchecking 'Create new revision' works when editing a node.
+   */
+  function testNodeFormSaveWithoutRevision() {
+
+    // Set page revision setting 'create new revision'. This will mean new
+    // revisions are created by default when the node is edited.
+    \Drupal::config('node.type.page')->set('settings.node.options.revision', TRUE)->save();
+
+    // Create initial node.
+    $node = $this->drupalCreateNode();
+
+    // Verify the buttons on a node edit form.
+    $this->drupalGet('node/' . $node->id() . '/edit');
+    $this->assertFieldChecked('edit-revision', 'create new revision on node edit form checked');
+
+    // Uncheck the create new revision checkbox and save the node.
+    $edit = array('revision' => FALSE);
+    $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
+
+    // Load the node again and check the revision is the same as before.
+    $node_revision = node_load($node->id(), TRUE);
+    $this->assertEqual($node_revision->getRevisionId(), $node->getRevisionId(), "After an existing node is saved with 'Create new revision' unchecked, a new revision is not created.");
+
+    // Verify the buttons on a node edit form.
+    $this->drupalGet('node/' . $node->id() . '/edit');
+    $this->assertFieldChecked('edit-revision', 'create new revision on node edit form checked');
+
+    // Submit the form without changing the checkbox.
+    $edit = array();
+    $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
+
+    // Load the node again and check the revision is different from before.
+    $node_revision = node_load($node->id(), TRUE);
+    $this->assertNotEqual($node_revision->getRevisionId(), $node->getRevisionId(), "After an existing node is saved with 'Create new revision' checked, a new revision is created.");
+
+  }
+}
