diff --git a/src/Controller/NodeRevisionController.php b/src/Controller/NodeRevisionController.php
index c32bcda..2d853b6 100644
--- a/src/Controller/NodeRevisionController.php
+++ b/src/Controller/NodeRevisionController.php
@@ -11,6 +11,7 @@ use Drupal\Core\Url;
 use Drupal\node\NodeInterface;
 use Drupal\diff\EntityComparisonBase;
 use Drupal\Component\Utility\Xss;
+use Drupal\Core\Language\LanguageInterface;
 
 /**
  * Returns responses for Node Revision routes.
@@ -64,7 +65,16 @@ class NodeRevisionController extends EntityComparisonBase {
     $storage = $this->entityManager()->getStorage('node');
     $left_revision = $storage->loadRevision($left_vid);
     $right_revision = $storage->loadRevision($right_vid);
-    $vids = $storage->revisionIds($node);
+    $langcode = $node->language()->getId();
+    $vids = [];
+    // Filter revisions of current translation and where the translation is
+    // affected.
+    foreach ($storage->revisionIds($node) as $vid) {
+      $revision = $storage->loadRevision($vid);
+      if ($revision->hasTranslation($langcode) && $revision->getTranslation($langcode)->isRevisionTranslationAffected()) {
+        $vids[] = $vid;
+      }
+    }
     $diff_rows[] = $this->buildRevisionsNavigation($node->id(), $vids, $left_vid, $right_vid);
     $diff_rows[] = $this->buildMarkdownNavigation($node->id(), $left_vid, $right_vid, $filter);
     $diff_header = $this->buildTableHeader($left_revision, $right_revision);
diff --git a/src/Form/RevisionOverviewForm.php b/src/Form/RevisionOverviewForm.php
index 95309d0..7d494f1 100755
--- a/src/Form/RevisionOverviewForm.php
+++ b/src/Form/RevisionOverviewForm.php
@@ -116,8 +116,8 @@ class RevisionOverviewForm extends FormBase {
    */
   public function buildForm(array $form, FormStateInterface $form_state, $node = NULL) {
     $account = $this->currentUser;
-    $langcode = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
-    $langname = $this->languageManager->getLanguageName($langcode);
+    $langcode = $node->language()->getId();
+    $langname = $node->language()->getName();
     $languages = $node->getTranslationLanguages();
     $has_translations = (count($languages) > 1);
     $node_storage = $this->entityManager->getStorage('node');
diff --git a/src/Tests/DiffLocaleTest.php b/src/Tests/DiffLocaleTest.php
index 15ff1dc..a19ffad 100644
--- a/src/Tests/DiffLocaleTest.php
+++ b/src/Tests/DiffLocaleTest.php
@@ -1,15 +1,7 @@
 <?php
 
-/**
- * @file
- * Contains \Drupal\diff\Tests\DiffLocaleTest.
- */
-
 namespace Drupal\diff\Tests;
 
-use Drupal\Core\Language\Language;
-use Drupal\Core\Language\LanguageInterface;
-use Drupal\language\Entity\ConfigurableLanguage;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -103,4 +95,72 @@ class DiffLocaleTest extends WebTestBase {
     $this->assertText('Le titre');
   }
 
+  /**
+   * Tests the translation filtering when navigating trough revisions.
+   */
+  function testTranslationFilter() {
+    // Add French language.
+    $edit = array(
+      'predefined_langcode' => 'fr',
+    );
+    $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add language'));
+
+    // Enable content translation on articles.
+    $this->drupalGet('admin/config/regional/content-language');
+    $edit = array(
+      'entity_types[node]' => TRUE,
+      'settings[node][article][translatable]' => TRUE,
+      'settings[node][article][settings][language][language_alterable]' => TRUE,
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
+
+    // Create a node in English.
+    $node = $this->drupalCreateNode([
+      'type' => 'article',
+      'title' => 'english_revision_0',
+    ]);
+
+    // Translate to french.
+    $node->addTranslation('fr', ['title' => 'french_revision_0']);
+    $node->save();
+
+    // Create a revision in English.
+    $english_node = $node->getTranslation('en');
+    $english_node->setTitle('english_revision_1');
+    $english_node->setNewRevision(TRUE);
+    $english_node->save();
+
+    // Create a revision in French.
+    $french_node = $node->getTranslation('fr');
+    $french_node->setTitle('french_revision_1');
+    $french_node->setNewRevision(TRUE);
+    $french_node->save();
+
+    // Create a new revision in English.
+    $english_node = $node->getTranslation('en');
+    $english_node->setTitle('english_revision_2');
+    $english_node->setNewRevision(TRUE);
+    $english_node->save();
+
+    // Create a new revision in French.
+    $french_node = $node->getTranslation('fr');
+    $french_node->setTitle('french_revision_2');
+    $french_node->setNewRevision(TRUE);
+    $french_node->save();
+
+    // Compare first two revisions.
+    $this->drupalGet('node/' . $node->id() . '/revisions/view/1/2');
+    $diffs = $this->xpath('//span[@class="diffchange"]');
+    $this->assertEqual($diffs[0], 'english_revision_0');
+    $this->assertEqual($diffs[1], 'english_revision_1');
+
+    // Check next difference.
+    $this->clickLink('Next difference >');
+    $diffs = $this->xpath('//span[@class="diffchange"]');
+    $this->assertEqual($diffs[0], 'english_revision_1');
+    $this->assertEqual($diffs[1], 'english_revision_2');
+
+    // There shouldn't be other differences in the current language.
+    $this->assertNoLink('Next difference >');
+  }
 }
