diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index 85515fd..d00cd6a 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -231,7 +231,7 @@ protected function findResults() {
       ->select('search_index', 'i', array('target' => 'replica'))
       ->extend('Drupal\search\SearchQuery')
       ->extend('Drupal\Core\Database\Query\PagerSelectExtender');
-    $query->join('node_field_data', 'n', 'n.nid = i.sid');
+    $query->join('node_field_data', 'n', 'n.nid = i.sid AND n.langcode = i.langcode');
     $query->condition('n.status', 1)
       ->addTag('node_access')
       ->searchExpression($keys, $this->getPluginId());
diff --git a/core/modules/search/src/Tests/SearchDateIntervalTest.php b/core/modules/search/src/Tests/SearchDateIntervalTest.php
new file mode 100644
index 0000000..bd37921
--- /dev/null
+++ b/core/modules/search/src/Tests/SearchDateIntervalTest.php
@@ -0,0 +1,116 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\search\Tests\SearchDateIntervalTest.
+ */
+
+namespace Drupal\search\Tests;
+
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\language\Entity\ConfigurableLanguage;
+
+/**
+ * Tests interval dates conditions with different languages added.
+ *
+ * @group search
+ */
+class SearchDateIntervalTest extends SearchTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('language', 'search_date_query_alter');
+
+  /**
+   * Array of nodes available to search.
+   *
+   * @var \Drupal\node\NodeInterface[]
+   */
+  protected $searchableNodes;
+
+  protected function setUp() {
+    parent::setUp();
+
+    // Create and login user.
+    $test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search', 'administer nodes', 'administer languages', 'access administration pages', 'administer site configuration'));
+    $this->drupalLogin($test_user);
+
+    // Add a new language.
+    ConfigurableLanguage::createFromLangcode('es')->save();
+
+    // Make the body field translatable. The title is already translatable by
+    // definition. The parent class has already created the article and page
+    // content types.
+    $field_storage = FieldStorageConfig::loadByName('node', 'body');
+    $field_storage->setTranslatable(TRUE);
+    $field_storage->save();
+
+    // Adding a different created time per language to avoid to have exactly
+    // the same value per nid and langcode.
+    $created_time_en = new \DateTime('February 10 2016 10PM');
+    $created_time_es = new \DateTime('March 19 2016 10PM');
+
+    // Create a few page nodes with multilingual body values.
+    $default_format = filter_default_format();
+    $nodes = array(
+      array(
+        'title' => 'First node en',
+        'type' => 'page',
+        'body' => array(array('value' => $this->randomMachineName(32), 'format' => $default_format)),
+        'langcode' => 'en',
+      ),
+      array(
+        'title' => 'Second node this is the Spanish title',
+        'type' => 'page',
+        'body' => array(array('value' => $this->randomMachineName(32), 'format' => $default_format)),
+        'langcode' => 'es',
+      ),
+      array(
+        'title' => 'Third node en',
+        'type' => 'page',
+        'body' => array(array('value' => $this->randomMachineName(32), 'format' => $default_format)),
+        'langcode' => 'en',
+        'created' => $created_time_en->format('U'),
+      ),
+    );
+    $this->searchableNodes = [];
+    foreach ($nodes as $setting) {
+      $this->searchableNodes[] = $this->drupalCreateNode($setting);
+    }
+
+    // Add English translation to the second node.
+    $translation = $this->searchableNodes[1]->addTranslation('en', array('title' => 'Second node en'));
+    $translation->body->value = $this->randomMachineName(32);
+    $this->searchableNodes[1]->save();
+
+    // Add Spanish translation to the third node.
+    $translation = $this->searchableNodes[2]->addTranslation('es', array('title' => 'Third node es'));
+    $translation->body->value = $this->randomMachineName(32);
+    $translation->created->value = $created_time_es->format('U');
+    $this->searchableNodes[2]->save();
+
+    // Update the index and then run the shutdown method.
+    $plugin = $this->container->get('plugin.manager.search')->createInstance('node_search');
+    $plugin->updateIndex();
+    search_update_totals();
+  }
+
+  /**
+   * Tests interval dates adding conditions from query alter.
+   */
+  public function testDateIntervalQueryAlter() {
+
+    // Search for keyword node.
+    $edit = array('keys' => 'node');
+    $this->drupalPostForm('search/node', $edit, t('Advanced search'));
+
+    // Third nodes must have the same nid but the created date is different. So
+    // only the spanish translation must appear. @See search_date_query_alter
+    // module where we add the conditions.
+    $this->assertLink('Third node es', 0, 'Third node Spanish found in search results');
+    $this->assertNoLink('Third node en', 'Search results does not contain third English node');
+  }
+}
diff --git a/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.info.yml b/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.info.yml
new file mode 100644
index 0000000..1185867
--- /dev/null
+++ b/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.info.yml
@@ -0,0 +1,6 @@
+name: 'Test to alter the query adding date conditions to the node search.'
+type: module
+description: 'Search Date Query Alter.'
+package: Testing
+version: VERSION
+core: 8.x
diff --git a/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.module b/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.module
new file mode 100644
index 0000000..be58e28
--- /dev/null
+++ b/core/modules/search/tests/modules/search_date_query_alter/search_date_query_alter.module
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * @file
+ * Contains search_pager_test.module
+ */
+
+use Drupal\Core\Database\Query\AlterableInterface;
+
+/**
+ * Implements hook_query_TAG_alter(): tag search_$type with $type node_search.
+ *
+ * @param \Drupal\Core\Database\Query\AlterableInterface $query
+ */
+function search_date_query_alter_query_search_node_search_alter(AlterableInterface $query) {
+  // Start date Sat, 19 Mar 2016 00:00:00 GMT
+  $query->condition('n.created', 1458345600, '>=');
+  // End date Sun, 20 Mar 2016 00:00:00 GMT
+  $query->condition('n.created', 1458432000, '<');
+}
