diff --git a/sources/content/src/Tests/ContentEntitySourceUiTest.php b/sources/content/src/Tests/ContentEntitySourceUiTest.php
index b457e4c..7875484 100644
--- a/sources/content/src/Tests/ContentEntitySourceUiTest.php
+++ b/sources/content/src/Tests/ContentEntitySourceUiTest.php
@@ -240,6 +240,9 @@ class ContentEntitySourceUiTest extends EntityTestBase {
     )));
     $this->assertText(t('The translation for @title has been accepted.', array('@title' => $node->getTitle())));
 
+    //Assert link is clickable.
+    $this->clickLink($node->getTitle());
+
     // Translated nodes should now be listed and be clickable.
     // @todo Use links on translate tab.
     $this->drupalGet('de/node/' . $node->id());
diff --git a/src/Entity/JobItem.php b/src/Entity/JobItem.php
index c862ef4..705fae7 100644
--- a/src/Entity/JobItem.php
+++ b/src/Entity/JobItem.php
@@ -15,6 +15,7 @@ use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\Core\Language\Language;
+use Drupal\Core\Url;
 use Drupal\tmgmt\JobItemInterface;
 use Drupal\tmgmt\TMGMTException;
 use Drupal\Core\Render\Element;
@@ -432,9 +433,12 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
    */
   public function needsReview($message = NULL, $variables = array(), $type = 'status') {
     if (!isset($message)) {
-      $url = $this->getSourceUrl();
-      $message = 'The translation for @source needs to be reviewed.';
-      $variables = array('@source' => \Drupal::l($this->getSourceLabel(), $url));
+      $source_url = $this->getSourceUrl();
+      $message = $source_url ? 'The translation for <a href="@source_url">@source</a> needs to be reviewed.' : 'The translation for @source needs to be reviewed.';
+      $variables = $source_url ? array(
+        '@source_url' => $source_url->toString(),
+        '@source' => ($this->getSourceLabel()),
+      ) : array('@source' => ($this->getSourceLabel()));
     }
     $return = $this->setState(static::STATE_REVIEW, $message, $variables, $type);
     // Auto accept the trganslation if the translator is configured for it.
@@ -449,9 +453,12 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
    */
   public function accepted($message = NULL, $variables = array(), $type = 'status') {
     if (!isset($message)) {
-      $url = $this->getSourceUrl();
-      $message = 'The translation for @source has been accepted.';
-      $variables = array('@source' => $url ? \Drupal::l($this->getSourceLabel(), $url) : $this->getSourceLabel());
+      $source_url = $this->getSourceUrl();
+      $message = $source_url ? 'The translation for <a href="@source_url">@source</a> has been accepted.' : 'The translation for @source has been accepted.';
+      $variables = $source_url ? array(
+        '@source_url' => $source_url->toString(),
+        '@source' => ($this->getSourceLabel()),
+      ) : array('@source' => ($this->getSourceLabel()));
     }
     $return = $this->setState(static::STATE_ACCEPTED, $message, $variables, $type);
     // Check if this was the last unfinished job item in this job.
@@ -467,9 +474,12 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
    */
   public function active($message = NULL, $variables = array(), $type = 'status') {
     if (!isset($message)) {
-      $url = $this->getSourceUrl();
-      $message = 'The translation for @source is now being processed.';
-      $variables = array('@source' => $url ? \Drupal::l($this->getSourceLabel(), $url) : $this->getSourceLabel());
+      $source_url = $this->getSourceUrl();
+      $message = $source_url ? 'The translation for <a href="@source_url">@source</a> is now being processed.' : 'The translation for @source is now being processed.';
+      $variables = $source_url ? array(
+        '@source_url' => $source_url->toString(),
+        '@source' => ($this->getSourceLabel()),
+      ) : array('@source' => ($this->getSourceLabel()));
     }
     return $this->setState(static::STATE_ACTIVE, $message, $variables, $type);
   }
@@ -716,11 +726,12 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
           // language and links to the review form.
           $job_url = $this->getJob()->url();
           $variables = array(
-            '@source' => $this->link($this->getSourceLabel()),
+            '@source' => $this->getSourceLabel(),
             '@language' => $this->getJob()->getTargetLanguage()->getName(),
-            '@review_url' => $this->url('canonical', array('query' => array('destination' => $job_url))),
+            '@review_url' => Url::fromUserInput($job_url)->toString(),
           );
-          $this->needsReview('The translation of @source to @language is finished and can now be <a href="@review_url">reviewed</a>.', $variables);
+          (!$this->getSourceUrl()) ? $variables['@source_url'] = (string) $job_url : $variables['@source_url'] = $this->getSourceUrl()->toString();
+          $this->needsReview('The translation of <a href="@source_url">@source</a> to @language is finished and can now be <a href="@review_url">reviewed</a>.', $variables);
         }
       }
     }
diff --git a/src/Tests/CrudTest.php b/src/Tests/CrudTest.php
index c4474b8..a273aee 100644
--- a/src/Tests/CrudTest.php
+++ b/src/Tests/CrudTest.php
@@ -230,7 +230,7 @@ class CrudTest extends TMGMTKernelTestBase {
     $messages = $job->getMessages();
     $this->assertEqual(count($messages), 1);
     $last_message = end($messages);
-    $this->assertEqual($last_message->message->value, 'The translation of @source to @language is finished and can now be <a href="@review_url">reviewed</a>.');
+    $this->assertEqual($last_message->message->value, 'The translation of <a href="@source_url">@source</a> to @language is finished and can now be <a href="@review_url">reviewed</a>.');
 
     // Initial state - translation has been received for the first time.
     $this->assertEqual($data['#translation']['#text'], 'translated 1');
diff --git a/src/Tests/PluginsTest.php b/src/Tests/PluginsTest.php
index be321e5..855ab36 100644
--- a/src/Tests/PluginsTest.php
+++ b/src/Tests/PluginsTest.php
@@ -78,7 +78,7 @@ class PluginsTest extends TMGMTKernelTestBase {
 
     // The third message is specific to a job item and has different state
     // constants.
-    $this->assertEqual('The translation of @source to @language is finished and can now be <a href="@review_url">reviewed</a>.', $needs_review->message->value);
+    $this->assertEqual('The translation of <a href="@source_url">@source</a> to @language is finished and can now be <a href="@review_url">reviewed</a>.', $needs_review->message->value);
     $this->assertEqual('status', $needs_review->type->value);
 
     $i = 1;
diff --git a/src/Tests/TMGMTUiTest.php b/src/Tests/TMGMTUiTest.php
index 1f189de..4c1e60a 100644
--- a/src/Tests/TMGMTUiTest.php
+++ b/src/Tests/TMGMTUiTest.php
@@ -485,11 +485,13 @@ class TMGMTUiTest extends TMGMTTestBase {
     ));
     $item5 = $job->addItem('test_source', 'test', 5);
 
+    $this->drupalGet('admin/tmgmt/jobs/' . $job->id());
+    $this->assertText('The translation of test_source:test:1 to German is finished and can now be reviewed.');
     $edit = array(
       'target_language' => 'de',
       'settings[action]' => 'translate',
     );
-    $this->drupalPostForm('admin/tmgmt/jobs/' . $job->id(), $edit, t('Submit to translator'));
+    $this->drupalPostForm(NULL, $edit, t('Submit to translator'));
 
     $this->drupalGet('admin/tmgmt/items/' . $item5->id());
     $rows5 = $this->xpath('//textarea[@name="dummy|deep_nesting[source][value]"]');
