diff --git a/src/Entity/JobItem.php b/src/Entity/JobItem.php
index c862ef4..eb0b65f 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;
@@ -715,12 +716,23 @@ class JobItem extends ContentEntityBase implements JobItemInterface {
           // Otherwise, create a message that contains source label, target
           // language and links to the review form.
           $job_url = $this->getJob()->url();
+          if (!$this->getSourceUrl()) {
+            $source_url = array(
+              '@source_url' => (string) $job_url,
+            );
+          }
+          else {
+            $source_url = array(
+              '@source_url' => $this->getSourceUrl()->toString(),
+            );
+          }
           $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);
+          $variables = array_merge($source_url, $variables);
+          $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 3c839a7..1b3608c 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]"]');
