Index: src/applications/differential/field/specification/DifferentialUnitFieldSpecification.php
===================================================================
--- src/applications/differential/field/specification/DifferentialUnitFieldSpecification.php
+++ src/applications/differential/field/specification/DifferentialUnitFieldSpecification.php
@@ -70,8 +70,23 @@
         $udata[$key]['sort'] = idx($sort_map, idx($test, 'result'));
       }
       $udata = isort($udata, 'sort');
-
-      foreach ($udata as $test) {
+      $engine = new PhabricatorMarkupEngine();
+      $engine->setViewer($this->getUser());
+      $markup_objects = array();
+      foreach ($udata as $key => $test) {
+        $userdata = idx($test, 'userdata');
+        if ($userdata) {
+          if ($userdata !== false) {
+            $userdata = str_replace("\000", '', $userdata);
+          }
+          $markup_object = id(new PhabricatorMarkupOneOff())
+              ->setContent($userdata);
+          $engine->addObject($markup_object, 'differential.diff');
+          $markup_objects[$key] = $markup_object;
+        }
+      }
+      $engine->process();
+      foreach ($udata as $key => $test) {
         $result = idx($test, 'result');
 
         $default_hide = false;
@@ -110,17 +125,10 @@
           'show'  => $show,
         );
 
-        $userdata = idx($test, 'userdata');
-        if ($userdata) {
-          if ($userdata !== false) {
-            $userdata = str_replace("\000", '', $userdata);
-          }
-          $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
-          $engine->setConfig('viewer', $this->getUser());
-          $userdata = $engine->markupText($userdata);
+        if (isset($markup_objects[$key])) {
           $rows[] = array(
             'style' => 'details',
-            'value' => $userdata,
+            'value' => $engine->getOutput($markup_objects[$key], "differential.diff"),
             'show'  => false,
           );
           if (empty($hidden['details'])) {