diff --git a/src/applications/files/controller/list/PhabricatorFileListController.php b/src/applications/files/controller/list/PhabricatorFileListController.php
index d1164f5d0..7aa7c24e1 100644
--- a/src/applications/files/controller/list/PhabricatorFileListController.php
+++ b/src/applications/files/controller/list/PhabricatorFileListController.php
@@ -1,351 +1,352 @@
 <?php
 
 /*
- * Copyright 2011 Facebook, Inc.
+ * Copyright 2012 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 class PhabricatorFileListController extends PhabricatorFileController {
   private $filter;
 
   private $showUploader;
   private $useBasicUploader = false;
 
   private $listAuthor;
   private $listRows;
   private $listRowClasses;
   private $listHeader;
   private $showListPager = true;
   private $listPager;
   private $pagerOffset;
   private $pagerPageSize;
 
   private function setFilter($filter) {
     $this->filter = $filter;
     return $this;
   }
   private function getFilter() {
     return $this->filter;
   }
 
   private function showUploader() {
     return $this->getShowUploader();
   }
   private function getShowUploader() {
     return $this->showUploader;
   }
   private function setShowUploader($show_uploader) {
     $this->showUploader = $show_uploader;
     return $this;
   }
 
   private function useBasicUploader() {
     return $this->getUseBasicUploader();
   }
   private function getUseBasicUploader() {
     return $this->useBasicUploader;
   }
   private function setUseBasicUploader($use_basic_uploader) {
     $this->useBasicUploader = $use_basic_uploader;
     return $this;
   }
 
   private function setListAuthor(PhabricatorUser $list_author) {
     $this->listAuthor = $list_author;
     return $this;
   }
   private function getListAuthor() {
     return $this->listAuthor;
   }
 
   private function getListRows() {
     return $this->listRows;
   }
   private function setListRows($list_rows) {
     $this->listRows = $list_rows;
     return $this;
   }
 
   private function getListRowClasses() {
     return $this->listRowClasses;
   }
   private function setListRowClasses($list_row_classes) {
     $this->listRowClasses = $list_row_classes;
     return $this;
   }
 
   private function getListHeader() {
     return $this->listHeader;
   }
   private function setListHeader($list_header) {
     $this->listHeader = $list_header;
     return $this;
   }
 
   private function showListPager() {
     return $this->getShowListPager();
   }
   private function getShowListPager() {
     return $this->showListPager;
   }
   private function setShowListPager($show_list_pager) {
     $this->showListPager = $show_list_pager;
     return $this;
   }
 
   private function getListPager() {
     return $this->listPager;
   }
   private function setListPager($list_pager) {
     $this->listPager = $list_pager;
     return $this;
   }
 
   private function setPagerOffset($pager_offset) {
     $this->pagerOffset = $pager_offset;
     return $this;
   }
   private function getPagerOffset() {
     return $this->pagerOffset;
   }
 
   private function setPagerPageSize($pager_page_size) {
     $this->pagerPageSize = $pager_page_size;
     return $this;
   }
   private function getPagerPageSize() {
     return $this->pagerPageSize;
   }
 
   public function willProcessRequest(array $data) {
     $this->setFilter(idx($data, 'filter', 'upload'));
   }
 
   public function processRequest() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     switch ($this->getFilter()) {
       case 'upload':
       default:
         $this->setShowUploader(true);
         $this->setUseBasicUploader($request->getExists('basic_uploader'));
         $see_all = phutil_render_tag(
           'a',
           array(
             'href' => '/file/filter/all',
           ),
           'See all Files');
         $this->setListHeader("Recently Uploaded Files &middot; {$see_all}");
         $this->setShowListPager(false);
         $this->setPagerOffset(0);
         $this->setPagerPageSize(10);
         break;
       case 'my':
         $this->setShowUploader(false);
         $this->setListHeader('Files You Uploaded');
         $this->setListAuthor($user);
         $this->setPagerOffset($request->getInt('page', 0));
         break;
       case 'all':
         $this->setShowUploader(false);
         $this->setListHeader('All Files');
         $this->setPagerOffset($request->getInt('page', 0));
         break;
     }
     $this->loadListData();
 
     $side_nav = new PhabricatorFileSideNavView();
     $side_nav->setSelectedFilter($this->getFilter());
     if ($this->showUploader()) {
       $side_nav->appendChild($this->renderUploadPanel());
     }
     $side_nav->appendChild($this->renderList());
 
     return $this->buildStandardPageResponse(
       $side_nav,
       array(
         'title' => 'Files',
         'tab'   => 'files',
       ));
   }
 
   private function loadListData() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     $pager = new AphrontPagerView();
     $pager->setOffset($this->getPagerOffset());
     if ($this->getPagerPageSize()) {
       $pager->setPageSize($this->getPagerPageSize());
     }
 
     $author = $this->getListAuthor();
     if ($author) {
       $files = id(new PhabricatorFile())->loadAllWhere(
         'authorPHID = %s ORDER BY id DESC LIMIT %d, %d',
         $author->getPHID(),
         $pager->getOffset(),
         $pager->getPageSize() + 1);
     } else {
       $files = id(new PhabricatorFile())->loadAllWhere(
         '1 = 1 ORDER BY id DESC LIMIT %d, %d',
         $pager->getOffset(),
         $pager->getPageSize() + 1);
     }
 
     $files = $pager->sliceResults($files);
     $pager->setURI($request->getRequestURI(), 'page');
     $this->setListPager($pager);
 
     $phids = mpull($files, 'getAuthorPHID');
     $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles();
 
     $highlighted = $request->getStr('h');
     $highlighted = explode('-', $highlighted);
     $highlighted = array_fill_keys($highlighted, true);
 
     $rows = array();
     $rowc = array();
     foreach ($files as $file) {
       if ($file->isViewableInBrowser()) {
         $view_button = phutil_render_tag(
           'a',
           array(
             'class' => 'small button grey',
             'href'  => $file->getViewURI(),
           ),
           'View');
       } else {
         $view_button = null;
       }
 
       if (isset($highlighted[$file->getID()])) {
         $rowc[] = 'highlighted';
       } else {
         $rowc[] = '';
       }
 
+      $name = $file->getName();
       $rows[] = array(
         phutil_escape_html('F'.$file->getID()),
         $file->getAuthorPHID()
           ? $handles[$file->getAuthorPHID()]->renderLink()
           : null,
         phutil_render_tag(
           'a',
           array(
             'href' => $file->getBestURI(),
           ),
-          phutil_escape_html($file->getName())),
+          ($name != '' ? phutil_escape_html($name) : '<em>no name</em>')),
         phutil_escape_html(number_format($file->getByteSize()).' bytes'),
         phutil_render_tag(
           'a',
           array(
             'class' => 'small button grey',
             'href'  => '/file/info/'.$file->getPHID().'/',
           ),
           'Info'),
         $view_button,
         phabricator_date($file->getDateCreated(), $user),
         phabricator_time($file->getDateCreated(), $user),
       );
     }
     $this->setListRows($rows);
     $this->setListRowClasses($rowc);
   }
 
   private function renderList() {
     $table = new AphrontTableView($this->getListRows());
     $table->setRowClasses($this->getListRowClasses());
     $table->setHeaders(
       array(
         'File ID',
         'Author',
         'Name',
         'Size',
         '',
         '',
         'Created',
         '',
       ));
     $table->setColumnClasses(
       array(
         null,
         '',
         'wide pri',
         'right',
         'action',
         'action',
         '',
         'right',
       ));
 
     $panel = new AphrontPanelView();
     $panel->appendChild($table);
     $panel->setHeader($this->getListHeader());
     if ($this->showListPager()) {
       $panel->appendChild($this->getListPager());
     }
 
     return $panel;
   }
 
   private function renderUploadPanel() {
     $request = $this->getRequest();
     $user = $request->getUser();
 
     if ($this->useBasicUploader()) {
 
       $upload_panel = new PhabricatorFileUploadView();
       $upload_panel->setUser($user);
 
     } else {
 
       require_celerity_resource('files-css');
       $upload_id = celerity_generate_unique_node_id();
       $panel_id  = celerity_generate_unique_node_id();
 
       $upload_panel = new AphrontPanelView();
       $upload_panel->setHeader('Upload Files');
       $upload_panel->setCreateButton('Basic Uploader',
         $request->getRequestURI()->setQueryParam('basic_uploader', true)
       );
 
       $upload_panel->setWidth(AphrontPanelView::WIDTH_FULL);
       $upload_panel->setID($panel_id);
 
       $upload_panel->appendChild(
         phutil_render_tag(
           'div',
           array(
             'id'    => $upload_id,
             'style' => 'display: none;',
             'class' => 'files-drag-and-drop',
           ),
           ''));
 
       Javelin::initBehavior(
         'files-drag-and-drop',
         array(
           'uri'             => '/file/dropupload/',
           'browseURI'       => '/file/filter/my/',
           'control'         => $upload_id,
           'target'          => $panel_id,
           'activatedClass'  => 'aphront-panel-view-drag-and-drop',
         ));
     }
 
     return $upload_panel;
   }
 }