diff --git a/src/applications/phurl/remarkup/PhabricatorPhurlLinkRemarkupRule.php b/src/applications/phurl/remarkup/PhabricatorPhurlLinkRemarkupRule.php
index aca7c14dc7..4ef59b300c 100644
--- a/src/applications/phurl/remarkup/PhabricatorPhurlLinkRemarkupRule.php
+++ b/src/applications/phurl/remarkup/PhabricatorPhurlLinkRemarkupRule.php
@@ -1,73 +1,74 @@
 <?php
 
 final class PhabricatorPhurlLinkRemarkupRule extends PhutilRemarkupRule {
 
   public function getPriority() {
     return 200.0;
   }
 
   public function apply($text) {
     // `((123))` remarkup link to `/u/123`
     // `((alias))` remarkup link to `/u/alias`
     return preg_replace_callback(
       '/\(\(([^ )]+)\)\)/',
       array($this, 'markupLink'),
       $text);
   }
 
   public function markupLink(array $matches) {
     $engine = $this->getEngine();
     $viewer = $engine->getConfig('viewer');
+
     $text_mode = $engine->isTextMode();
+    $html_mode = $engine->isHTMLMailMode();
 
     if (!$this->isFlatText($matches[0])) {
       return $matches[0];
     }
 
     $ref = $matches[1];
     $monogram = null;
     $is_monogram = '/^U(?P<id>[1-9]\d*)/';
 
+    $query = id(new PhabricatorPhurlURLQuery())
+      ->setViewer($viewer);
+
     if (preg_match($is_monogram, $ref, $monogram)) {
-      $phurls = id(new PhabricatorPhurlURLQuery())
-        ->setViewer($viewer)
-        ->withIDs(array($monogram[1]))
-        ->execute();
+      $query->withIDs(array($monogram[1]));
     } else if (ctype_digit($ref)) {
-      $phurls = id(new PhabricatorPhurlURLQuery())
-        ->setViewer($viewer)
-        ->withIDs(array($ref))
-        ->execute();
+      $query->withIDs(array($ref));
     } else {
-      $phurls = id(new PhabricatorPhurlURLQuery())
-        ->setViewer($viewer)
-        ->withAliases(array($ref))
-        ->execute();
+      $query->withAliases(array($ref));
+    }
+
+    $phurl = $query->executeOne();
+    if (!$phurl) {
+      return $matches[0];
     }
 
-    $phurl = head($phurls);
+    $uri = $phurl->getRedirectURI();
+    $name = $phurl->getDisplayName();
 
-    if ($phurl) {
-      if ($text_mode) {
-        return $phurl->getDisplayName().
-          ' <'.
-          $phurl->getRedirectURI().
-          '>';
-      }
+    if ($text_mode || $html_mode) {
+      $uri = PhabricatorEnv::getProductionURI($uri);
+    }
 
+    if ($text_mode) {
+      return pht(
+        '%s <%s>',
+        $name,
+        $uri);
+    } else {
       $link = phutil_tag(
         'a',
         array(
-          'href' => $phurl->getRedirectURI(),
+          'href' => $uri,
           'target' => '_blank',
         ),
-        $phurl->getDisplayName());
-
-      return $this->getEngine()->storeText($link);
-    } else {
-      return $matches[0];
+        $name);
     }
-  }
 
+    return $this->getEngine()->storeText($link);
+  }
 
 }