diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index 4aed1ef..85de165 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -532,15 +532,16 @@ function _update_message_text($msg_type, $msg_reason, $report_link = FALSE, $lan
   }
   if ($report_link) {
     if (update_manager_access()) {
-      $text .= ' ' . t('See the <a href="@available_updates">available updates</a> page for more information and to install your missing updates.', array('@available_updates' => \Drupal::url('update.report_update', [], ['language' => $language])), array('langcode' => $langcode));
+      $available_updates_text = t('See the <a href="@available_updates">available updates</a> page for more information and to install your missing updates.', array('@available_updates' => \Drupal::url('update.report_update', [], ['language' => $language])), array('langcode' => $langcode));
     }
     else {
-      $text .= ' ' . t('See the <a href="@available_updates">available updates</a> page for more information.', array('@available_updates' => \Drupal::url('update.status', [], ['language' => $language])), array('langcode' => $langcode));
+      $available_updates_text = t('See the <a href="@available_updates">available updates</a> page for more information.', array('@available_updates' => \Drupal::url('update.status', [], ['language' => $language])), array('langcode' => $langcode));
     }
+    return SafeMarkup::format('@text @available_updates_text', ['@text' => $text, '@available_updates_text' => $available_updates_text]);
   }
 
-  // All strings are t() and empty space concatenated so return SafeMarkup.
-  return SafeMarkup::set($text);
+  // Anything in $text has been run through t() and marked as safe.
+  return $text;
 }
 
 /**
