diff --git a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
index 816a842..1fcdcaf 100644
--- a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
+++ b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
@@ -181,7 +181,6 @@ class ContentEntitySource extends SourcePluginBase {
 
     $data = $job_item->getData();
     $this->doSaveTranslations($entity, $data, $job->getTargetLangcode());
-    $job_item->accepted();
     return TRUE;
   }
 
diff --git a/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php b/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
index 3efd175..9a65b00 100644
--- a/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
+++ b/sources/locale/src/Plugin/tmgmt/Source/LocaleSource.php
@@ -223,7 +223,6 @@ class LocaleSource extends SourcePluginBase {
       // Update the locale string in the system.
       // @todo: Send error message to user if update fails.
       if ($this->updateTranslation($job_item->getItemId(), $job->getTargetLangcode(), $translation)) {
-        $job_item->accepted();
         return TRUE;
       }
     }
diff --git a/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php b/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
index 1e1de9f..0cd8c07 100644
--- a/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
+++ b/sources/tmgmt_config/src/Tests/ConfigSourceUiTest.php
@@ -104,28 +104,22 @@ class ConfigSourceUiTest extends EntityTestBase {
     // Make sure that we're back on the originally defined destination URL.
     $this->assertUrl('admin/structure/types/manage/article/translate');
 
-    // Translated languages should now be listed as Needs review.
+    // The last translated language should now be listed as Needs review.
     $rows = $this->xpath('//tbody/tr');
     $counter = 0;
     foreach ($rows as $value) {
       if ($value->td[2]->a == 'Needs review') {
-        $this->assertEqual('Spanish' || 'German', (string) $value->td[1]);
+        $this->assertEqual('Spanish', (string) $value->td[1]);
         $counter++;
       }
     }
-    $this->assertEqual($counter, 2);
+    $this->assertEqual($counter, 1);
   }
 
   /**
    * Test the node type for a single checkout.
    */
   function testNodeTypeTranslateTabMultipeCheckout() {
-    // Allow auto-accept.
-    $default_translator = Translator::load('test_translator');
-    $default_translator
-      ->setSetting('auto_accept', TRUE)
-      ->save();
-
     $this->loginAsTranslator(array('translate configuration'));
 
     // Go to the translate tab.
@@ -229,16 +223,16 @@ class ConfigSourceUiTest extends EntityTestBase {
     // Make sure that we're back on the originally defined destination URL.
     $this->assertUrl('admin/structure/views/view/content/translate');
 
-    // Translated languages should now be listed as Needs review.
+    // The last translated language should now be listed as Needs review.
     $rows = $this->xpath('//tbody/tr');
     $counter = 0;
     foreach ($rows as $value) {
       if ($value->td[2]->a == 'Needs review') {
-        $this->assertEqual('Spanish' || 'German', (string) $value->td[1]);
+        $this->assertEqual('Spanish', (string) $value->td[1]);
         $counter++;
       }
     }
-    $this->assertEqual($counter, 2);
+    $this->assertEqual($counter, 1);
 
     // Test that a job can not be accepted if the entity does not exist.
     $this->clickLink(t('Needs review'));
diff --git a/src/Entity/JobItem.php b/src/Entity/JobItem.php
index ff9555d..dbbab3d 100644
--- a/src/Entity/JobItem.php
+++ b/src/Entity/JobItem.php
@@ -750,13 +750,16 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
    * {@inheritdoc}
    */
   public function acceptTranslation() {
-    if (!$this->isNeedsReview() || !$plugin = $this->getSourcePlugin()) {
-      return FALSE;
+    if ($this->isNeedsReview() && $plugin = $this->getSourcePlugin()) {
+      // We don't know if the source plugin was able to save the translation
+      // after this point. That means that the plugin has to set the 'accepted'
+      // states on its own.
+      if ($plugin->saveTranslation($this)) {
+        $this->accepted();
+        return TRUE;
+      }
     }
-    // We don't know if the source plugin was able to save the translation after
-    // this point. That means that the plugin has to set the 'accepted' states
-    // on its own.
-    $plugin->saveTranslation($this);
+    return FALSE;
   }
 
   /**
diff --git a/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php b/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
index 047c031..9b66696 100644
--- a/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
+++ b/tmgmt_test/src/Plugin/tmgmt/Source/TestSource.php
@@ -105,7 +105,6 @@ class TestSource extends SourcePluginBase {
   public function saveTranslation(JobItemInterface $job_item) {
     // Set a variable that can be checked later for a given job item.
     \Drupal::state()->set('tmgmt_test_saved_translation_' . $job_item->getItemType() . '_' . $job_item->getItemId(), $job_item->getData());
-    $job_item->accepted();
     return TRUE;
   }
 
