diff --git a/src/applications/differential/customfield/DifferentialRepositoryField.php b/src/applications/differential/customfield/DifferentialRepositoryField.php
index cab25dbbe5..06ada847c9 100644
--- a/src/applications/differential/customfield/DifferentialRepositoryField.php
+++ b/src/applications/differential/customfield/DifferentialRepositoryField.php
@@ -1,164 +1,170 @@
 <?php
 
 final class DifferentialRepositoryField
   extends DifferentialCoreCustomField {
 
   public function getFieldKey() {
     return 'differential:repository';
   }
 
   public function getFieldName() {
     return pht('Repository');
   }
 
   public function getFieldDescription() {
     return pht('Associates a revision with a repository.');
   }
 
   protected function readValueFromRevision(
     DifferentialRevision $revision) {
     return $revision->getRepositoryPHID();
   }
 
   protected function writeValueToRevision(
     DifferentialRevision $revision,
     $value) {
     $revision->setRepositoryPHID($value);
   }
 
   public function readValueFromRequest(AphrontRequest $request) {
     $phids = $request->getArr($this->getFieldKey());
     $first = head($phids);
     $this->setValue(nonempty($first, null));
   }
 
   public function getRequiredHandlePHIDsForEdit() {
     $phids = array();
     if ($this->getValue()) {
       $phids[] = $this->getValue();
     }
     return $phids;
   }
 
   public function renderEditControl(array $handles) {
     if ($this->getValue()) {
       $control_value = array_select_keys($handles, array($this->getValue()));
     } else {
       $control_value = array();
     }
 
     return id(new AphrontFormTokenizerControl())
       ->setName($this->getFieldKey())
       ->setDatasource(new DiffusionRepositoryDatasource())
       ->setValue($control_value)
       ->setError($this->getFieldError())
       ->setLabel($this->getFieldName())
       ->setLimit(1);
   }
 
   public function getApplicationTransactionRequiredHandlePHIDs(
     PhabricatorApplicationTransaction $xaction) {
 
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
 
     $phids = array();
     if ($old) {
       $phids[] = $old;
     }
     if ($new) {
       $phids[] = $new;
     }
 
     return $phids;
   }
 
   public function getApplicationTransactionTitle(
     PhabricatorApplicationTransaction $xaction) {
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
 
     if ($old && $new) {
       return pht(
         '%s changed the repository for this revision from %s to %s.',
         $xaction->renderHandleLink($author_phid),
         $xaction->renderHandleLink($old),
         $xaction->renderHandleLink($new));
     } else if ($new) {
       return pht(
         '%s set the repository for this revision to %s.',
         $xaction->renderHandleLink($author_phid),
         $xaction->renderHandleLink($new));
     } else {
       return pht(
         '%s removed %s as the repository for this revision.',
         $xaction->renderHandleLink($author_phid),
         $xaction->renderHandleLink($old));
     }
   }
 
   public function getApplicationTransactionTitleForFeed(
     PhabricatorApplicationTransaction $xaction,
     PhabricatorFeedStory $story) {
 
     $object_phid = $xaction->getObjectPHID();
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
 
-    if ($old) {
+    if ($old && $new) {
       return pht(
         '%s updated the repository for %s from %s to %s.',
         $xaction->renderHandleLink($author_phid),
         $xaction->renderHandleLink($object_phid),
         $xaction->renderHandleLink($old),
         $xaction->renderHandleLink($new));
-    } else {
+    } else if ($new) {
       return pht(
         '%s set the repository for %s to %s.',
         $xaction->renderHandleLink($author_phid),
         $xaction->renderHandleLink($object_phid),
         $xaction->renderHandleLink($new));
+    } else {
+      return pht(
+        '%s removed the repository for %s. (Repository was %s.)',
+        $xaction->renderHandleLink($author_phid),
+        $xaction->renderHandleLink($object_phid),
+        $xaction->renderHandleLink($old));
     }
   }
 
   public function shouldAppearInPropertyView() {
     return true;
   }
 
   public function renderPropertyViewLabel() {
     return $this->getFieldName();
   }
 
   public function getRequiredHandlePHIDsForPropertyView() {
     $repository_phid = $this->getObject()->getRepositoryPHID();
     if ($repository_phid) {
       return array($repository_phid);
     }
     return array();
   }
 
   public function renderPropertyViewValue(array $handles) {
     return $this->renderHandleList($handles);
   }
 
   public function shouldAppearInTransactionMail() {
     return true;
   }
 
   public function updateTransactionMailBody(
     PhabricatorMetaMTAMailBody $body,
     PhabricatorApplicationTransactionEditor $editor,
     array $xactions) {
 
     $repository = $this->getObject()->getRepository();
     if ($repository === null) {
       return;
     }
 
     $body->addTextSection(pht('REPOSITORY'),
       $repository->getMonogram().' '.$repository->getName());
   }
 
 }