diff --git a/includes/tmgmt.entity.inc b/includes/tmgmt.entity.inc
index 1089384..2c0a2cb 100644
--- a/includes/tmgmt.entity.inc
+++ b/includes/tmgmt.entity.inc
@@ -634,7 +634,7 @@ class TMGMTJobItem extends Entity {
       $this->state = $state;
       $this->save();
       // If a message is attached to this state change add it now.
-      if (isset($message)) {
+      if (!empty($message)) {
         $this->addMessage($message, $variables, $type);
       }
     }
@@ -796,7 +796,22 @@ class TMGMTJobItem extends Entity {
       if ($finished) {
         // There are no unfinished elements left.
         $uri = $this->getSourceUri();
-        $this->needsReview('The translation for !source is finished and can now be reviewed.', array('!source' => l($this->getSourceLabel(), $uri['path'])));
+        if ($this->getJob()->getTranslator()->getSetting('auto_accept')) {
+          // If the job item is going to be auto-accepted, set to review without
+          // a message.
+          $this->needsReview(FALSE);
+        }
+        else {
+          // Otherwise, create a message that contains source label, target
+          // language and links to the review form.
+          $uri = $this->uri();
+          $variables = array(
+            '!source' => l($this->getSourceLabel(), $uri['path']),
+            '@language' => entity_metadata_wrapper('tmgmt_job', $this->getJob())->target_language->label(),
+            '!review_url' => url($uri['path'] . '/review', array('query' => array('destination' => current_path()))),
+          );
+          $this->needsReview('The translation of !source to @language is finished and can now be <a href="!review_url">reviewed</a>.', $variables);
+        }
       }
     }
     $this->save();
@@ -1268,7 +1283,7 @@ class TMGMTJob extends Entity {
       $this->state = $state;
       $this->save();
       // If a message is attached to this state change add it now.
-      if (isset($message)) {
+      if (!empty($message)) {
         $this->addMessage($message, $variables, $type);
       }
     }
diff --git a/sources/entity/ui/tmgmt_entity_ui.test b/sources/entity/ui/tmgmt_entity_ui.test
index 5245fc7..5b31c25 100644
--- a/sources/entity/ui/tmgmt_entity_ui.test
+++ b/sources/entity/ui/tmgmt_entity_ui.test
@@ -453,7 +453,8 @@ class TMGMTEntitySourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('German'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node->title)));
 
     // German node should now be listed and be clickable.
     // @todo Improve detection of the link, e.g. use xpath on the table or the
@@ -500,7 +501,8 @@ class TMGMTEntitySourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('Spanish'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node->title)));
 
     // Translated nodes should now be listed and be clickable.
     // @todo Use links on translate tab.
@@ -579,7 +581,8 @@ class TMGMTEntitySourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('comment/' . $comment->cid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $comment->subject)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $comment->subject, '@language' => t('Spanish'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $comment->subject)));
 
     // @todo Use links on translate tab.
     $this->drupalGet('de/comment/' . $comment->cid);
diff --git a/sources/i18n_string/tmgmt_i18n_string.plugin.inc b/sources/i18n_string/tmgmt_i18n_string.plugin.inc
index c078a11..bd9fe44 100644
--- a/sources/i18n_string/tmgmt_i18n_string.plugin.inc
+++ b/sources/i18n_string/tmgmt_i18n_string.plugin.inc
@@ -18,15 +18,7 @@ class TMGMTI18nStringSourcePluginController extends TMGMTDefaultSourcePluginCont
     $i18n_object = explode(':', $job_item->item_id);
     $i18n_object_type = array_shift($i18n_object);
     $i18n_object_id = (count($i18n_object) == 1) ? reset($i18n_object) : $i18n_object;
-    // @todo: i18n has introduced a new function and changed the existing one,
-    //        conditionally call the one that exists. Remove once a new stable
-    //        version is out.
-    if (function_exists('i18n_get_object')) {
-      $i18n_strings = i18n_get_object($i18n_object_type, $i18n_object_id)->get_strings();
-    }
-    else {
-      $i18n_strings = i18n_object($i18n_object_type, $i18n_object_id)->get_strings();
-    }
+    $i18n_strings = i18n_object($i18n_object_type, $i18n_object_id)->get_strings();
     $structure = array('#label' => 'i18n Strings: ' . $i18n_object_type);
     foreach ($i18n_strings as $string_id => $string) {
       $structure[$string_id] = array(
diff --git a/sources/node/ui/tmgmt_node_ui.test b/sources/node/ui/tmgmt_node_ui.test
index 7924f2e..e969834 100644
--- a/sources/node/ui/tmgmt_node_ui.test
+++ b/sources/node/ui/tmgmt_node_ui.test
@@ -195,7 +195,7 @@ class TMGMTNodeSourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('German'))));
 
     // Review.
     $this->clickLink(t('Needs review'));
@@ -247,7 +247,7 @@ class TMGMTNodeSourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('Spanish'))));
 
     // Review.
     $this->clickLink(t('Needs review'));
@@ -304,7 +304,7 @@ class TMGMTNodeSourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('German'))));
 
     // Review.
     $this->clickLink(t('Needs review'));
@@ -362,7 +362,7 @@ class TMGMTNodeSourceUITestCase extends TMGMTBaseTestCase {
     // Make sure that we're back on the translate tab.
     $this->assertEqual(url('node/' . $node->nid . '/translate', array('absolute' => TRUE)), $this->getUrl());
     $this->assertText(t('Test translation created.'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node->title)));
+    $this->assertText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node->title, '@language' => t('German'))));
 
     // Review.
     $this->clickLink(t('Needs review'));
@@ -474,9 +474,12 @@ class TMGMTNodeSourceUIOverviewTestCase extends TMGMTBaseTestCase {
       'target_language' => 'de',
     );
     $this->drupalPost(NULL, $edit, t('Submit to translator'));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node1->title)));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node2->title)));
-    $this->assertText(t('The translation for @title is finished and can now be reviewed.', array('@title' => $node3->title)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node1->title, '@language' => t('German'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node1->title)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node2->title, '@language' => t('German'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node1->title)));
+    $this->assertNoText(t('The translation of @title to @language is finished and can now be reviewed.', array('@title' => $node3->title, '@language' => t('German'))));
+    $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node1->title)));
 
     // Check the translated node.
     $this->clickLink($node1->title);
diff --git a/tmgmt.test b/tmgmt.test
index 9dafc3f..25e9935 100644
--- a/tmgmt.test
+++ b/tmgmt.test
@@ -441,7 +441,7 @@ class TMGMTPluginsTestCase extends TMGMTBaseTestCase {
 
     // The third message is specific to a job item and has different state
     // constants.
-    $this->assertEqual('The translation for !source is finished and can now be reviewed.', $needs_review->message);
+    $this->assertEqual('The translation of !source to @language is finished and can now be <a href="!review_url">reviewed</a>.', $needs_review->message);
     $this->assertEqual('status', $needs_review->type);
 
     $i = 1;
