diff --git a/src/Form/JobForm.php b/src/Form/JobForm.php
index 7eba8a6..4a47f86 100644
--- a/src/Form/JobForm.php
+++ b/src/Form/JobForm.php
@@ -7,8 +7,8 @@
 
 namespace Drupal\tmgmt\Form;
 
-use Drupal\Component\Utility\Html;
 use Drupal\Core\Ajax\AjaxResponse;
+use Drupal\Core\Ajax\InvokeCommand;
 use Drupal\Core\Ajax\ReplaceCommand;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageInterface;
@@ -59,6 +59,9 @@ class JobForm extends TmgmtFormBase {
       $target = '?';
     }
     else {
+      if($form_state->get('check_target_language') == FALSE) {
+        $form_state->set('check_target_language', $job->getTargetLangcode());
+      }
       $target = $job->getTargetLanguage()->getName();
     }
 
@@ -173,6 +176,18 @@ class JobForm extends TmgmtFormBase {
       );
     }
 
+    // Checkout whether given source already has items in translation.
+      $num_of_existing_items = count($this->checkoutExistingItems($form_state->get('check_target_language')));
+      $form['message'] = array(
+        '#type' => 'label',
+        '#title' => \Drupal::translation()->formatPlural($num_of_existing_items, 'Already exist item in translation.', 'Already exist @count items in translation.'),
+        '#prefix' => '<div class="messages messages--warning hidden">',
+        '#suffix' => '</div>',
+      );
+      if ($num_of_existing_items) {
+        $form['message']['#prefix'] = '<div class="messages messages--warning">';
+      }
+
     // Display created time only for jobs that are not new anymore.
     if (!$job->isUnprocessed() && !$job->isContinuousActive()) {
       $form['info']['created'] = array(
@@ -381,6 +396,7 @@ class JobForm extends TmgmtFormBase {
     }
 
     $form['#attached']['library'][] = 'tmgmt/admin';
+
     return $form;
   }
 
@@ -490,6 +506,12 @@ class JobForm extends TmgmtFormBase {
    * Overrides Drupal\Core\Entity\EntityForm::save().
    */
   public function save(array $form, FormStateInterface $form_state) {
+
+    $ids_of_existing_items = $this->checkoutExistingItems($form_state->get('check_target_language'));
+    if ($ids_of_existing_items) {
+      entity_delete_multiple('tmgmt_job_item', $ids_of_existing_items);
+    }
+
     parent::save($form, $form_state);
 
     // Everything below this line is only invoked if the 'Submit to provider'
@@ -572,10 +594,17 @@ class JobForm extends TmgmtFormBase {
    * target / source language dropdowns.
    */
   public function ajaxLanguageSelect(array $form, FormStateInterface $form_state) {
+    $number_of_existing_items = count($this->checkoutExistingItems($form_state->get('check_target_language')));
     $replace = $form_state->getUserInput()['_triggering_element_name'] == 'source_language' ? 'target_language' : 'source_language';
     $response = new AjaxResponse();
     $response->addCommand(new ReplaceCommand('#tmgmt-ui-translator-wrapper', $form['translator_wrapper']));
     $response->addCommand(new ReplaceCommand('#tmgmt-ui-' . str_replace('_', '-', $replace), $form['info'][$replace]));
+    if ($number_of_existing_items) {
+      $response->addCommand(new ReplaceCommand('.messages--warning', '<div class="messages messages--warning"><label>' . \Drupal::translation()->formatPlural($number_of_existing_items, 'Already exist item in translation.', 'Already exist @count items in translation.') . '</label></div>'));
+    }
+    else {
+      $response->addCommand(new InvokeCommand('.messages--warning', 'addClass', array('hidden')));
+    }
     return $response;
   }
 
@@ -587,6 +616,25 @@ class JobForm extends TmgmtFormBase {
   }
 
   /**
+   * Helper function for retrieving number of existing items.
+   */
+  function checkoutExistingItems($check_target_language) {
+    $job = $this->entity;
+    $items = $job->getItems();
+    $latest_items_of_chosen_source = array();
+    $ids_of_existing_items = array();
+    foreach ($items as $item) {
+      $latest_items_of_chosen_source[$item->id()] = tmgmt_job_item_load_latest($item->getPlugin(), $item->getItemType(), $item->getItemId(), $job->getSourceLangcode());
+    }
+    foreach ($latest_items_of_chosen_source as $key => $item) {
+      if (($check_target_language == FALSE || $check_target_language !== $job->getTargetLangcode()) && array_key_exists($job->getTargetLangcode(), $item)) {
+        $ids_of_existing_items[] = $key;
+      }
+    }
+    return $ids_of_existing_items;
+  }
+
+  /**
    * Adds selected suggestions to the job.
    */
   function addSuggestionsSubmit(array $form, FormStateInterface $form_state) {
