diff --git a/src/applications/audit/query/PhabricatorCommitSearchEngine.php b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
index 433b6b5ae..8cbfc03a3 100644
--- a/src/applications/audit/query/PhabricatorCommitSearchEngine.php
+++ b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
@@ -1,154 +1,162 @@
 <?php
 
 final class PhabricatorCommitSearchEngine
   extends PhabricatorApplicationSearchEngine {
 
   public function buildSavedQueryFromRequest(AphrontRequest $request) {
     $saved = new PhabricatorSavedQuery();
 
     $saved->setParameter(
       'auditorPHIDs',
       $this->readPHIDsFromRequest($request, 'auditorPHIDs'));
 
     $saved->setParameter(
       'commitAuthorPHIDs',
       $this->readUsersFromRequest($request, 'commitAuthorPHIDs'));
 
     $saved->setParameter(
       'auditStatus',
       $request->getStr('auditStatus'));
 
     $saved->setParameter(
       'repositoryPHIDs',
       $this->readPHIDsFromRequest($request, 'repositoryPHIDs'));
 
     // -- TODO - T4173 - file location
 
     return $saved;
   }
 
   public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
     $query = id(new DiffusionCommitQuery())
       ->needAuditRequests(true)
       ->needCommitData(true);
 
     $auditor_phids = $saved->getParameter('auditorPHIDs', array());
     if ($auditor_phids) {
       $query->withAuditorPHIDs($auditor_phids);
     }
 
     $commit_author_phids = $saved->getParameter('commitAuthorPHIDs', array());
     if ($commit_author_phids) {
       $query->withAuthorPHIDs($commit_author_phids);
     }
 
     $audit_status = $saved->getParameter('auditStatus', null);
     if ($audit_status) {
       $query->withAuditStatus($audit_status);
     }
 
     $awaiting_user_phid = $saved->getParameter('awaitingUserPHID', null);
     if ($awaiting_user_phid) {
       // This is used only for the built-in "needs attention" filter,
       // so cheat and just use the already-loaded viewer rather than reloading
       // it.
       $query->withAuditAwaitingUser($this->requireViewer());
     }
 
     return $query;
   }
 
   public function buildSearchForm(
     AphrontFormView $form,
     PhabricatorSavedQuery $saved) {
 
     $auditor_phids = $saved->getParameter('auditorPHIDs', array());
     $commit_author_phids = $saved->getParameter(
       'commitAuthorPHIDs',
       array());
     $audit_status = $saved->getParameter('auditStatus', null);
 
     $phids = array_mergev(
       array(
         $auditor_phids,
         $commit_author_phids));
 
     $handles = id(new PhabricatorHandleQuery())
       ->setViewer($this->requireViewer())
       ->withPHIDs($phids)
       ->execute();
 
     $form
       ->appendChild(
         id(new AphrontFormTokenizerControl())
           ->setDatasource('/typeahead/common/usersprojectsorpackages/')
           ->setName('auditorPHIDs')
           ->setLabel(pht('Auditors'))
           ->setValue(array_select_keys($handles, $auditor_phids)))
       ->appendChild(
         id(new AphrontFormTokenizerControl())
           ->setDatasource('/typeahead/common/users/')
           ->setName('commitAuthorPHIDs')
           ->setLabel(pht('Commit Authors'))
           ->setValue(array_select_keys($handles, $commit_author_phids)))
        ->appendChild(
          id(new AphrontFormSelectControl())
          ->setName('auditStatus')
          ->setLabel(pht('Audit Status'))
          ->setOptions($this->getAuditStatusOptions())
          ->setValue($audit_status));
   }
 
   protected function getURI($path) {
     return '/audit/'.$path;
   }
 
   public function getBuiltinQueryNames() {
     $names = array();
 
     if ($this->requireViewer()->isLoggedIn()) {
-      $names['need_attention'] = pht('Need Attention');
+      $names['need'] = pht('Need Attention');
+      $names['problem'] = pht('Problem Commits');
     }
+
     $names['open'] = pht('Open Audits');
 
     $names['all'] = pht('All Commits');
 
     return $names;
   }
 
   public function buildSavedQueryFromBuiltin($query_key) {
     $query = $this->newSavedQuery();
     $query->setQueryKey($query_key);
     $viewer = $this->requireViewer();
 
     switch ($query_key) {
       case 'all':
         return $query;
       case 'open':
         $query->setParameter(
           'auditStatus',
           DiffusionCommitQuery::AUDIT_STATUS_OPEN);
         return $query;
-      case 'need_attention':
+      case 'need':
         $query->setParameter('awaitingUserPHID', $viewer->getPHID());
         $query->setParameter(
           'auditStatus',
           DiffusionCommitQuery::AUDIT_STATUS_OPEN);
         $query->setParameter(
           'auditorPHIDs',
           PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($viewer));
         return $query;
+      case 'problem':
+        $query->setParameter('commitAuthorPHIDs', array($viewer->getPHID()));
+        $query->setParameter(
+          'auditStatus',
+          DiffusionCommitQuery::AUDIT_STATUS_CONCERN);
+        return $query;
     }
 
     return parent::buildSavedQueryFromBuiltin($query_key);
   }
 
   private function getAuditStatusOptions() {
     return array(
       DiffusionCommitQuery::AUDIT_STATUS_ANY => pht('Any'),
       DiffusionCommitQuery::AUDIT_STATUS_OPEN => pht('Open'),
       DiffusionCommitQuery::AUDIT_STATUS_CONCERN => pht('Concern Raised'),
     );
   }
 
 }
diff --git a/src/applications/home/controller/PhabricatorHomeMainController.php b/src/applications/home/controller/PhabricatorHomeMainController.php
index d8ae2ce24..21bfe99f8 100644
--- a/src/applications/home/controller/PhabricatorHomeMainController.php
+++ b/src/applications/home/controller/PhabricatorHomeMainController.php
@@ -1,489 +1,491 @@
 <?php
 
 final class PhabricatorHomeMainController
   extends PhabricatorHomeController {
 
   private $filter;
   private $minipanels = array();
 
   public function shouldAllowPublic() {
     return true;
   }
 
   public function willProcessRequest(array $data) {
     $this->filter = idx($data, 'filter');
   }
 
   public function processRequest() {
     $user = $this->getRequest()->getUser();
 
     if ($this->filter == 'jump') {
       return $this->buildJumpResponse();
     }
 
     $nav = $this->buildNav();
 
     $project_query = new PhabricatorProjectQuery();
     $project_query->setViewer($user);
     $project_query->withMemberPHIDs(array($user->getPHID()));
     $projects = $project_query->execute();
 
     return $this->buildMainResponse($nav, $projects);
   }
 
   private function buildMainResponse($nav, array $projects) {
     assert_instances_of($projects, 'PhabricatorProject');
     $viewer = $this->getRequest()->getUser();
 
     $has_maniphest = PhabricatorApplication::isClassInstalledForViewer(
       'PhabricatorApplicationManiphest',
       $viewer);
 
     $has_audit = PhabricatorApplication::isClassInstalledForViewer(
       'PhabricatorApplicationAudit',
       $viewer);
 
     $has_differential = PhabricatorApplication::isClassInstalledForViewer(
       'PhabricatorApplicationDifferential',
       $viewer);
 
     if ($has_maniphest) {
       $unbreak_panel = $this->buildUnbreakNowPanel();
       $triage_panel = $this->buildNeedsTriagePanel($projects);
       $tasks_panel = $this->buildTasksPanel();
     } else {
       $unbreak_panel = null;
       $triage_panel = null;
       $tasks_panel = null;
     }
 
     if ($has_audit) {
       $audit_panel = $this->buildAuditPanel();
       $commit_panel = $this->buildCommitPanel();
     } else {
       $audit_panel = null;
       $commit_panel = null;
     }
 
     if (PhabricatorEnv::getEnvConfig('welcome.html') !== null) {
       $welcome_panel = $this->buildWelcomePanel();
     } else {
       $welcome_panel = null;
     }
 
     $jump_panel = $this->buildJumpPanel();
 
     if ($has_differential) {
       $revision_panel = $this->buildRevisionPanel();
     } else {
       $revision_panel = null;
     }
 
     $content = array(
       $jump_panel,
       $welcome_panel,
       $unbreak_panel,
       $triage_panel,
       $revision_panel,
       $tasks_panel,
       $audit_panel,
       $commit_panel,
       $this->minipanels,
     );
 
     $user = $this->getRequest()->getUser();
     $nav->appendChild($content);
     $nav->appendChild(id(new PhabricatorGlobalUploadTargetView())
       ->setUser($user));
 
     return $this->buildApplicationPage(
       $nav,
       array(
         'title' => 'Phabricator',
         'device' => true,
       ));
   }
 
   private function buildJumpResponse() {
     $request = $this->getRequest();
     $jump = $request->getStr('jump');
 
     $response = PhabricatorJumpNavHandler::getJumpResponse(
       $request->getUser(),
       $jump);
 
     if ($response) {
       return $response;
     } else if ($request->isFormPost()) {
       $uri = new PhutilURI('/search/');
       $uri->setQueryParam('query', $jump);
       $uri->setQueryParam('search:primary', 'true');
 
       return id(new AphrontRedirectResponse())->setURI((string)$uri);
     } else {
       return id(new AphrontRedirectResponse())->setURI('/');
     }
   }
 
   private function buildUnbreakNowPanel() {
     $unbreak_now = PhabricatorEnv::getEnvConfig(
       'maniphest.priorities.unbreak-now');
     if (!$unbreak_now) {
       return null;
     }
 
     $user = $this->getRequest()->getUser();
 
     $task_query = id(new ManiphestTaskQuery())
       ->setViewer($user)
       ->withStatuses(ManiphestTaskStatus::getOpenStatusConstants())
       ->withPriorities(array($unbreak_now))
       ->setLimit(10);
 
     $tasks = $task_query->execute();
 
     if (!$tasks) {
       return $this->renderMiniPanel(
         'No "Unbreak Now!" Tasks',
         'Nothing appears to be critically broken right now.');
     }
 
     $href = sprintf(
       '/maniphest/?statuses[]=%s&priorities[]=%s#R',
       implode(',', ManiphestTaskStatus::getOpenStatusConstants()),
       $unbreak_now);
     $title = pht('Unbreak Now!');
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
     $panel->appendChild($this->buildTaskListView($tasks));
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function buildNeedsTriagePanel(array $projects) {
     assert_instances_of($projects, 'PhabricatorProject');
 
     $needs_triage = PhabricatorEnv::getEnvConfig(
       'maniphest.priorities.needs-triage');
     if (!$needs_triage) {
       return null;
     }
 
     $user = $this->getRequest()->getUser();
     if (!$user->isLoggedIn()) {
       return null;
     }
 
     if ($projects) {
       $task_query = id(new ManiphestTaskQuery())
         ->setViewer($user)
         ->withStatuses(ManiphestTaskStatus::getOpenStatusConstants())
         ->withPriorities(array($needs_triage))
         ->withAnyProjects(mpull($projects, 'getPHID'))
         ->setLimit(10);
       $tasks = $task_query->execute();
     } else {
       $tasks = array();
     }
 
     if (!$tasks) {
       return $this->renderMiniPanel(
         'No "Needs Triage" Tasks',
         hsprintf(
           'No tasks in <a href="/project/">projects you are a member of</a> '.
           'need triage.'));
     }
 
     $title = pht('Needs Triage');
     $href = sprintf(
       '/maniphest/?statuses[]=%s&priorities[]=%s&userProjects[]=%s#R',
       implode(',', ManiphestTaskStatus::getOpenStatusConstants()),
       $needs_triage,
       $user->getPHID());
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
     $panel->appendChild($this->buildTaskListView($tasks));
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function buildRevisionPanel() {
     $user = $this->getRequest()->getUser();
     $user_phid = $user->getPHID();
 
     $revision_query = id(new DifferentialRevisionQuery())
       ->setViewer($user)
       ->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
       ->withResponsibleUsers(array($user_phid))
       ->needRelationships(true)
       ->needFlags(true)
       ->needDrafts(true);
 
     $revisions = $revision_query->execute();
 
     list($blocking, $active, ) = DifferentialRevisionQuery::splitResponsible(
         $revisions,
         array($user_phid));
 
     if (!$blocking && !$active) {
       return $this->renderMiniPanel(
         'No Waiting Revisions',
         'No revisions are waiting on you.');
     }
 
     $title = pht('Revisions Waiting on You');
     $href = '/differential';
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
 
     $revision_view = id(new DifferentialRevisionListView())
       ->setHighlightAge(true)
       ->setRevisions(array_merge($blocking, $active))
       ->setUser($user);
     $phids = array_merge(
       array($user_phid),
       $revision_view->getRequiredHandlePHIDs());
     $handles = $this->loadViewerHandles($phids);
 
     $revision_view->setHandles($handles);
 
     $list_view = $revision_view->render();
     $list_view->setFlush(true);
 
     $panel->appendChild($list_view);
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function buildWelcomePanel() {
     $panel = new AphrontPanelView();
     $panel->appendChild(
       phutil_safe_html(
         PhabricatorEnv::getEnvConfig('welcome.html')));
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function buildTasksPanel() {
     $user = $this->getRequest()->getUser();
     $user_phid = $user->getPHID();
 
     $task_query = id(new ManiphestTaskQuery())
       ->setViewer($user)
       ->withStatuses(ManiphestTaskStatus::getOpenStatusConstants())
       ->setGroupBy(ManiphestTaskQuery::GROUP_PRIORITY)
       ->withOwners(array($user_phid))
       ->setLimit(10);
 
     $tasks = $task_query->execute();
 
 
     if (!$tasks) {
       return $this->renderMiniPanel(
         'No Assigned Tasks',
         'You have no assigned tasks.');
     }
 
     $title = pht('Assigned Tasks');
     $href = '/maniphest';
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
     $panel->appendChild($this->buildTaskListView($tasks));
     $panel->setNoBackground();
 
     return $panel;
   }
 
   private function buildTaskListView(array $tasks) {
     assert_instances_of($tasks, 'ManiphestTask');
     $user = $this->getRequest()->getUser();
 
     $phids = array_merge(
       array_filter(mpull($tasks, 'getOwnerPHID')),
       array_mergev(mpull($tasks, 'getProjectPHIDs')));
 
     $handles = $this->loadViewerHandles($phids);
 
     $view = new ManiphestTaskListView();
     $view->setTasks($tasks);
     $view->setUser($user);
     $view->setHandles($handles);
 
     return $view;
   }
 
   private function buildJumpPanel($query=null) {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $uniq_id = celerity_generate_unique_node_id();
 
     Javelin::initBehavior(
       'phabricator-autofocus',
       array(
         'id' => $uniq_id,
       ));
 
     require_celerity_resource('phabricator-jump-nav');
 
     $doc_href = PhabricatorEnv::getDocLink('Jump Nav User Guide');
     $doc_link = phutil_tag(
       'a',
       array(
         'href' => $doc_href,
       ),
       'Jump Nav User Guide');
 
     $jump_input = phutil_tag(
       'input',
       array(
         'type'  => 'text',
         'class' => 'phabricator-jump-nav',
         'name'  => 'jump',
         'id'    => $uniq_id,
         'value' => $query,
       ));
     $jump_caption = phutil_tag(
       'p',
       array(
         'class' => 'phabricator-jump-nav-caption',
       ),
       hsprintf(
         'Enter the name of an object like <tt>D123</tt> to quickly jump to '.
           'it. See %s or type <tt>help</tt>.',
         $doc_link));
 
     $form = phabricator_form(
       $user,
       array(
         'action' => '/jump/',
         'method' => 'POST',
         'class'  => 'phabricator-jump-nav-form',
       ),
       array(
         $jump_input,
         $jump_caption,
       ));
 
     $panel = new AphrontPanelView();
     $panel->setNoBackground();
     // $panel->appendChild();
 
     $list_filter = new AphrontListFilterView();
     $list_filter->appendChild($form);
 
     $container = phutil_tag('div',
       array('class' => 'phabricator-jump-nav-container'),
       $list_filter);
 
     return $container;
   }
 
   private function renderSectionHeader($title, $href) {
     $header = phutil_tag(
       'a',
       array(
         'href' => $href,
       ),
       $title);
     return $header;
   }
 
   private function renderMiniPanel($title, $body) {
     $panel = new AphrontMiniPanelView();
     $panel->appendChild(
       phutil_tag(
         'p',
         array(
         ),
         array(
           phutil_tag('strong', array(), $title.': '),
           $body
         )));
     $this->minipanels[] = $panel;
   }
 
   public function buildAuditPanel() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
 
     $query = id(new DiffusionCommitQuery())
       ->setViewer($user)
       ->withAuditorPHIDs($phids)
       ->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_OPEN)
       ->withAuditAwaitingUser($user)
+      ->needAuditRequests(true)
       ->needCommitData(true)
       ->setLimit(10);
 
     $commits = $query->execute();
 
     if (!$commits) {
       return $this->renderMinipanel(
         'No Audits',
         'No commits are waiting for you to audit them.');
     }
 
     $view = id(new PhabricatorAuditListView())
       ->setCommits($commits)
       ->setUser($user);
 
     $phids = $view->getRequiredHandlePHIDs();
     $handles = $this->loadViewerHandles($phids);
     $view->setHandles($handles);
 
     $title = pht('Audits');
     $href = '/audit/';
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
     $panel->appendChild($view);
     $panel->setNoBackground();
 
     return $panel;
   }
 
   public function buildCommitPanel() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $phids = array($user->getPHID());
 
     $query = id(new DiffusionCommitQuery())
       ->setViewer($user)
       ->withAuthorPHIDs($phids)
       ->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_CONCERN)
       ->needCommitData(true)
+      ->needAuditRequests(true)
       ->setLimit(10);
 
     $commits = $query->execute();
 
     if (!$commits) {
       return $this->renderMinipanel(
         'No Problem Commits',
         'No one has raised concerns with your commits.');
     }
 
     $view = id(new PhabricatorAuditListView())
       ->setCommits($commits)
       ->setUser($user);
 
     $phids = $view->getRequiredHandlePHIDs();
     $handles = $this->loadViewerHandles($phids);
     $view->setHandles($handles);
 
     $title = pht('Problem Commits');
     $href = '/audit/';
     $panel = new AphrontPanelView();
     $panel->setHeader($this->renderSectionHeader($title, $href));
     $panel->appendChild($view);
     $panel->setNoBackground();
 
     return $panel;
   }
 
 }