diff --git a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
index 084bd56..e162080 100644
--- a/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
+++ b/sources/content/src/Plugin/tmgmt/Source/ContentEntitySource.php
@@ -95,6 +95,40 @@ class ContentEntitySource extends SourcePluginBase implements SourcePreviewInter
   }
 
   /**
+   * Gets data items weights.
+   *
+   * @param \Drupal\tmgmt\JobItemInterface $job_item
+   *   Job item.
+   *
+   * @return array
+   *   Data items weights.
+   *
+   * @throws \Drupal\tmgmt\TMGMTException
+   */
+  public function getDataItemsWeights(JobItemInterface $job_item) {
+    $entity = \Drupal::entityTypeManager()
+      ->getStorage($job_item->getItemType())
+      ->load($job_item->getItemId());
+    if (!$entity) {
+      throw new TMGMTException(t('Unable to load entity @type with id @id',
+        ['@type' => $job_item->getItemType(), '@id' => $job_item->getItemId()]));
+    }
+    $entity_form_display = entity_get_form_display($job_item->getItemType(), $entity->bundle(), 'default');
+    $data = $job_item->getData();
+    $default = count(Element::children($data));
+    $weights = [];
+    foreach (Element::children($data) as $key) {
+      if ($entity_form_display->getComponent($key) && !is_null($entity_form_display->getComponent($key)['weight'])) {
+        $weights[$key] = (int) $entity_form_display->getComponent($key)['weight'];
+      }
+      else {
+        $weights[$key] = ++$default;
+      }
+    }
+    return $weights;
+  }
+
+  /**
    * Extracts translatable data from an entity.
    *
    * @param \Drupal\Core\Entity\ContentEntityInterface $entity
diff --git a/sources/content/src/Tests/ContentEntitySourceUiTest.php b/sources/content/src/Tests/ContentEntitySourceUiTest.php
index 81b23cf..4c790ff 100644
--- a/sources/content/src/Tests/ContentEntitySourceUiTest.php
+++ b/sources/content/src/Tests/ContentEntitySourceUiTest.php
@@ -715,4 +715,55 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     $this->assertEqual(count($continuous_job->getItems()), 3, 'There are no new job items for selected nodes.');
   }
 
+  /**
+   * Test is source plugin consider field sequences.
+   */
+  public function testFieldSequences() {
+    $this->createNodeType('article1', 'Article 1', TRUE, FALSE);
+
+    $node = $this->createTranslatableNode('article1', 'en');
+
+    $job = $this->createJob('en', 'de');
+    $job->translator = $this->default_translator->id();
+    $job->addItem('content', $node->getEntityTypeId(), $node->id());
+    $job->save();
+
+    $job->requestTranslation();
+
+    // Visit job item review page and check order of data fields.
+    $this->drupalGet(URL::fromRoute('entity.tmgmt_job_item.canonical', ['tmgmt_job_item' => $node->id()]));
+    $edit_review = $this->xpath('//*[@id="edit-review"]');
+
+    $key = 0;
+    $before = [];
+    foreach ($edit_review[0]->children() as $child) {
+      $before[$key++] = (string) $child['id'];
+    }
+
+    // Change order of title and body.
+    entity_get_form_display('node', 'article1', 'default')
+      ->setComponent('body', array(
+        'type' => 'text_textarea_with_summary',
+        'weight' => 1,
+      ))
+      ->setComponent('title', array(
+        'type' => 'string_textfield',
+        'weight' => 2,
+      ))
+      ->save();
+
+    // Visit job item review page and check order of title and body.
+    $this->drupalGet(URL::fromRoute('entity.tmgmt_job_item.canonical', ['tmgmt_job_item' => $node->id()]));
+    $edit_review = $this->xpath('//*[@id="edit-review"]');
+
+    $key = 0;
+    $after = [];
+    foreach ($edit_review[0]->children() as $child) {
+      $after[$key++] = (string) $child['id'];
+    }
+    // Title is now after body on the review page.
+    $this->assertEqual($after[0], $before[1]);
+    $this->assertEqual($after[1], $before[0]);
+  }
+
 }
diff --git a/src/Form/JobItemForm.php b/src/Form/JobItemForm.php
index fa83f94..f486b1e 100644
--- a/src/Form/JobItemForm.php
+++ b/src/Form/JobItemForm.php
@@ -124,10 +124,16 @@ class JobItemForm extends TmgmtFormBase {
     // Need to keep the first hierarchy. So flatten must take place inside
     // of the foreach loop.
     $zebra = 'even';
+    if ($plugin = $item->getSourcePlugin()) {
+      $weights = $plugin->getDataItemsWeights($item);
+    }
     foreach (Element::children($data) as $key) {
       $review_element = $this->reviewFormElement($form_state, \Drupal::service('tmgmt.data')->flatten($data[$key], $key), $item, $zebra, $key);
       if ($review_element) {
         $form['review'][$key] = $review_element;
+        if (!empty($weights) && isset($weights[$key])) {
+          $form['review'][$key]['#weight'] = $weights[$key];
+        }
       }
     }
 
