Index: resources/sql/autopatches/20170322.reviewers.04.actor.sql
===================================================================
--- /dev/null
+++ resources/sql/autopatches/20170322.reviewers.04.actor.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_differential.differential_reviewer
+  ADD lastActorPHID VARBINARY(64);
Index: src/applications/differential/storage/DifferentialReviewer.php
===================================================================
--- src/applications/differential/storage/DifferentialReviewer.php
+++ src/applications/differential/storage/DifferentialReviewer.php
@@ -8,6 +8,7 @@
   protected $reviewerStatus;
   protected $lastActionDiffPHID;
   protected $lastCommentDiffPHID;
+  protected $lastActorPHID;
 
   private $authority = array();
 
@@ -17,6 +18,7 @@
         'reviewerStatus' => 'text64',
         'lastActionDiffPHID' => 'phid?',
         'lastCommentDiffPHID' => 'phid?',
+        'lastActorPHID' => 'phid?',
       ),
       self::CONFIG_KEY_SCHEMA => array(
         'key_revision' => array(
Index: src/applications/differential/xaction/DifferentialRevisionReviewTransaction.php
===================================================================
--- src/applications/differential/xaction/DifferentialRevisionReviewTransaction.php
+++ src/applications/differential/xaction/DifferentialRevisionReviewTransaction.php
@@ -198,12 +198,17 @@
             ->setReviewerPHID($dst_phid);
         }
 
+        $old_status = $reviewer->getReviewerStatus();
         $reviewer->setReviewerStatus($status);
 
         if ($diff_phid) {
           $reviewer->setLastActionDiffPHID($diff_phid);
         }
 
+        if ($old_status !== $status) {
+          $reviewer->setLastActorPHID($this->getActingAsPHID());
+        }
+
         if ($status == DifferentialReviewerStatus::STATUS_RESIGNED) {
           if ($reviewer->getID()) {
             $reviewer->delete();