diff --git a/tests/tmgmt_mygengo_test.module b/tests/tmgmt_mygengo_test.module
index c2f84bc..5f2bf49 100644
--- a/tests/tmgmt_mygengo_test.module
+++ b/tests/tmgmt_mygengo_test.module
@@ -9,6 +9,18 @@
  * Implements hook_menu().
  */
 function tmgmt_mygengo_test_menu() {
+  $items['tmgmt_mygengo_mock/v2/translate/job/%/comment'] = array(
+    'page callback' => 'tmgmt_mygengo_test_service_comment_create',
+    'page arguments' => array(4),
+    'type' => MENU_CALLBACK,
+    'access callback' => TRUE,
+  );
+  $items['tmgmt_mygengo_mock/v2/translate/job/%/comments'] = array(
+    'page callback' => 'tmgmt_mygengo_test_service_comments_get',
+    'page arguments' => array(4),
+    'type' => MENU_CALLBACK,
+    'access callback' => TRUE,
+  );
   $items['tmgmt_mygengo_mock/v2/translate/jobs'] = array(
     'page callback' => 'tmgmt_mygengo_test_service_translate',
     'type' => MENU_CALLBACK,
@@ -28,6 +40,50 @@ function tmgmt_mygengo_test_menu() {
 }
 
 /**
+ * Mock service call to create a comment.
+ *
+ * @param $gengo_job_id
+ *   Remote job id.
+ */
+function tmgmt_mygengo_test_service_comment_create($gengo_job_id) {
+  $comment = new stdClass();
+  $data = drupal_json_decode($_POST['data']);
+  $comment->body = $data['body'];
+  $comment->ctime = REQUEST_TIME;
+  $comment->author = 'yogi bear';
+
+  $comments = variable_get('tmgmt_mygengo_test_comments', array());
+  $comments[$gengo_job_id][] = $comment;
+  variable_set('tmgmt_mygengo_test_comments', $comments);
+
+  drupal_json_output(array(
+    'opstat' => 'ok',
+    'response' => array(),
+  ));
+}
+
+/**
+ * Mock service call to fetch remote comments.
+ *
+ * @param $gengo_job_id
+ *   Remote job id.
+ */
+function tmgmt_mygengo_test_service_comments_get($gengo_job_id) {
+  $response = new stdClass();
+  $comments = variable_get('tmgmt_mygengo_test_comments', array());
+  if (!isset($comments[$gengo_job_id])) {
+    $comments[$gengo_job_id] = array();
+  }
+
+  $response->thread = $comments[$gengo_job_id];
+
+  drupal_json_output(array(
+    'opstat' => 'ok',
+    'response' => $response,
+  ));
+}
+
+/**
  * Page callback account balance.
  */
 function tmgmt_mygengo_test_service_account_balance() {
diff --git a/tmgmt_mygengo.plugin.inc b/tmgmt_mygengo.plugin.inc
index b08d5c5..07a69b3 100644
--- a/tmgmt_mygengo.plugin.inc
+++ b/tmgmt_mygengo.plugin.inc
@@ -305,8 +305,7 @@ class TMGMTMyGengoTranslatorPluginController extends TMGMTDefaultTranslatorPlugi
         $key = $response_job->custom_data;
       }
 
-      $key = array_slice(tmgmt_ensure_keys_array($key), 1);
-      $this->saveTranslation($job, $key, $response_job);
+      $this->saveTranslation($job, array_slice(tmgmt_ensure_keys_array($key), 1), $response_job);
 
       $mappings[] = array(
         'tjid' => $job->tjid,
diff --git a/tmgmt_mygengo.test b/tmgmt_mygengo.test
index 744a48d..ec0a820 100644
--- a/tmgmt_mygengo.test
+++ b/tmgmt_mygengo.test
@@ -398,4 +398,67 @@ class TMGMTMyGengoTestCase extends TMGMTBaseTestCase {
     $this->assertEqual('mt_de_This text is a duplicate', $data['wrapper']['real_duplicate']['#translation']['#text']);
     $this->assertEqual('mt_de_Not duplicate but same key', $data['wrapper']['duplicate1']['#translation']['#text']);
   }
+
+  function testComments() {
+    $this->loginAsAdmin();
+
+    // Create job with two job items.
+
+    $this->translator->settings['api_public_key'] = 'correct key';
+    $this->translator->settings['api_private_key'] = 'correct key';
+    $this->translator->save();
+    $job = $this->createJob();
+    $job->settings['quality'] = 'machine';
+    $job->translator = $this->translator->name;
+    $job->save();
+    $item = $job->addItem('test_source', 'test', '1');
+    $item->data = array(
+      'title' => array(
+        '#text' => 'Hello world',
+        '#label' => 'Title',
+      ),
+      'body' => array(
+        '#text' => 'This is some testing content',
+        '#label' => 'Body',
+      ),
+    );
+    $item->save();
+    $item = $job->addItem('test_source', 'test', '2');
+    $item->data = array(
+      'title' => array(
+        '#text' => 'Nice day',
+        '#label' => 'Title',
+      ),
+      'body' => array(
+        '#text' => 'It is nice day out there',
+        '#label' => 'Body',
+      ),
+    );
+    $item->save();
+
+    // Request translation which also must create remote job mappings.
+    $job->requestTranslation();
+
+    /**
+     * @var TMGMTMyGengoTranslatorPluginController $plugin
+     */
+    $plugin = $job->getTranslatorController();
+    $mapping = NULL;
+
+    // Get mapping for first data item of second job item -> Title "Nice day".
+    foreach ($plugin->getMappedGengoData($job->tjid) as $gjid => $mapping) {
+      if ($mapping->data_item_key == $job->tjid . '][' . $item->tjiid . '][title') {
+        break;
+      }
+    }
+
+    // Post comment - this must be possible if mappings are correct.
+    $comment = $this->randomName();
+    $this->drupalPostAJAX('admin/config/regional/tmgmt/items/' . $item->tjiid,
+      array($mapping->gjid . '_comment' => $comment), $mapping->gjid . '_submit');
+
+    // Reload the review form again and check if comment text is present.
+    $this->drupalGet('admin/config/regional/tmgmt/items/' . $item->tjiid);
+    $this->assertText($comment);
+  }
 }
